009.Docker Compose部署及基础使用
一 Docker Compose概述
- 在Dockerfile中定义您的应用程序环境,以便可以在任何地方进行再生产。
- 定义构成应用程序的服务,docker-compose.yml 以便它们可以在隔离环境中一起运行。
- 运行docker-compose up和Compose start并运行整个应用程序。
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
- logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
- 启动,停止和重建服务
- 查看正在运行的服务的状态
- 流式传输运行服务的日志输出
- 在服务上运行一次性命令
二 Docker Compose安装
2.1 二进制下载安装
root@docker01:~# sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
root@docker01:~# sudo chmod +x /usr/local/bin/docker-compose
2.2 pip安装(推荐)
root@docker01:~# apt-get -y install python
root@docker01:~# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
root@docker01:~# python get-pip.py #安装PIP
root@docker01:~# pip install docker-compose #安装docker compose
root@docker01:~# docker-compose version #验证安装
三 Docker Compose示例
3.1 构建应用程序
root@docker01:~# mkdir composetest #创建Docker Compose目录
root@docker01:~# cd composetest/
root@docker01:~/composetest# vi app.py
3.2 创建Dockerfile
root@docker01:~/composetest# vi Dockerfile #使用Dockerfile构建镜像
FROM python:3.4-alpine
RUN mkdir /root/.pip #创建pip源配置目录
ADD pip.conf /root/.pip/pip.conf #将国内pip源添加至需要构建的镜像中
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt #根据文件列表使用pip安装
CMD ["python", "app.py"]
root@docker01:~/composetest# vi requirements.txt #创建安装软件列表文件
flask
redis
root@docker01:~/composetest# vi pip.conf #创建基于国内pip源的文件
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
- 从Python 3.4映像开始构建映像。
- 创建pip配置目录。
- 将国内pip源配置文件添加到/root/.pip/映像中的路径中。
- 将当前目录添加.到/code映像中的路径中。
- 将工作目录设置为/code。
- 安装Python相关包。
- 将容器的默认命令设置为python app.py。
3.3 使用Docker Compose构建服务
root@docker01:~/composetest# vi docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
- 使用从Dockerfile当前目录中构建的图像。
- 将容器上的公开端口5000转发到主机上的端口5000。即使用Flask Web服务器的默认端口5000。
root@docker01:~/composetest# docker-compose up -d #开始构建
四 验证确认

root@docker01:~/composetest# docker-compose ps
root@docker01:~/composetest# docker ps

root@docker01:~/composetest# docker image ls

五 挂载卷构建
root@docker01:~/composetest# vi docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
redis:
image: "redis:alpine"
root@docker01:~/composetest# docker-compose up -d #再次构建
root@docker01:~/composetest# vi app.py
……
return 'Hello Docker! I have been seen {} times.\n'.format(count)
……

六 Docker Compose其他常用命令
docker-compose up -d:在后台运行服务;
docker-compose ps:查看当前正在运行的容器;
docker-compose run:运行一次性命令,如docker-compose run web env。

docker-compose stop:停止服务,如docker-compose stop web
docker-compose down --volumes:完全删除容器同时删除容器使用的数据卷。
009.Docker Compose部署及基础使用的更多相关文章
- 029.Docker Compose部署Zabbix实战
一 前期规划 1.1 Zabbix架构图 1.2 其他规划 组件 类型 版本 备注 Zabbix Web zabbix-web-apache-mysql镜像 wordpress:latest 也可采用 ...
- Docker Compose 部署前后端分离应用
部署前后端分离应用 容器化 Abp 应用 关于 Abp 应用的容器化,其实和普通的 ASP.NET Core 应用差不多,大家可以参考我此前的文章. 唯一需要注意的是:因为 Abp 解决方案中有多个项 ...
- 在Windows Server 2019通过Docker Compose部署Asp.Net Core
一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...
- Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose部署Nexus3时的docker-compose,yml代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose 部署 Redis 及原理讲解 | 懒人屋
原文:Docker Compose 部署 Redis 及原理讲解 | 懒人屋 Docker Compose 部署 Redis 及原理讲解 4.4k 字 16 分钟 2019-10-1 ...
- Docker Compose部署 EFK(Elasticsearch + Fluentd + Kibana)收集日志
简述 本文用于记录如何使用Docker Compose部署 EFK(Elasticsearch + Fluentd + Kibana) 收集Docker容器日志,使用EFK,可以无侵入代码,获得灵活, ...
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
使用Docker Compose部署基于Sentinel的高可用Redis集群 https://yq.aliyun.com/articles/57953 Docker系列之(五):使用Docker C ...
随机推荐
- 关于C++中的指针、数组
C++中指针和数组基本等价的原因在于指针算术和C++内部处理数组的方式:将整数变量加一后,其值将增加1:将指针变量加一后,增加的量等于其指向的数据类型的字节数: 指针中存储的是地址,地址在形式上和整数 ...
- 算法导论 之 红黑树 - 删除[C语言]【转】
转自:https://blog.csdn.net/qifengzou/article/details/17608863 作者:邹祁峰 邮箱:Qifeng.zou.job@hotmail.com 博客: ...
- dup,dup2函数【转】
转自:http://eriol.iteye.com/blog/1180624 转自:http://www.cnblogs.com/jht/archive/2006/04/04/366086.html ...
- php数据库的增删改查
1.查询: 数据的显示,这里就可以嵌入php来进行数据的输出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...
- ES系列十二、ES的scroll Api及分页实例
1.官方api 1.Scroll概念 Version:6.1 英文原文地址:Scroll 当一个搜索请求返回单页结果时,可以使用 scroll API 检索体积大量(甚至全部)结果,这和在传统数据库中 ...
- 网络抓包 Fiddler
1. Fiddler 抓包简介 Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据.当然Fiddler很屌,在打开它的那一瞬间,它就已经设置好了浏览器的代理了.当你关闭的时候 ...
- Linux关闭防火墙,开放端口
Centos/redhat系统: 开启防火墙 #systemctl start firewalld.service 停止firewall #systemctl stop firewalld.servi ...
- centos7下配置saltstack
1.下载 使用yum方式即可,可以更换下yum源,这里使用的阿里云的 [root@salt-master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo h ...
- nagios系列(四)之nagios主动方式监控tcp常用的80/3306等端口监控web/syncd/mysql及url服务
nagios主动方式监控tcp服务web/syncd/mysql及url cd /usr/local/nagios/libexec/ [root@node4 libexec]# ./check_tcp ...
- centos6.7安装系统后看不到网卡无法配置IP的解决办法
新安装centos6.7后发现/etc/sysconfig/network-scripts目录下没有eth0的网卡配置,通过ifconfig可以看到eth0的硬件地址 于是新建网卡输入一下内容 # c ...