单机编排之Docker Compose

当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用docker 单机编排工具docker compose,Docker Compose 是docker容器的一种编排服务,docker compose是一个管理多个容器的工具,比如可以解决容器之间的依赖关系,就像启动一个web就必须得先把数据库服务先启动一样,docker compose 完全可以替代docker run启动容器。
#github 地址https://github.com/docker/compose
1.1:基础环境准备:
1.1.1:安装python环境及pip命令:  
root@host-172-16-99-151:~# apt-get install python-pip -y
root@host-172-16-99-151:~# pip install --upgrade pip
注:centos系统的操作如下
# yum install https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm -y
# yum install python-pip -y
# pip install --upgrade pip
 
1.1.2:安装docker compose:
root@host-172-16-99-151:~# apt-get install docker-compose
注:centos系统 yum install -y docker-compose
1.1.3:验证版本:
root@host-172-16-99-151:~# docker-compose  version
1.1.4:查看帮助:
root@host-172-16-99-151:~# docker-compose  --help
1.2:从 docker compose启动单个容器:
目录可以在任意目录,推荐放在有意义的位置。
root@host-172-16-99-151:~# mkdir docker-compose
root@host-172-16-99-151:~# cd docker-compose/
1.2.1:一个容器的docker compose文件:
设置一个yml格式的配置文件,因此要注意前后的缩进。
root@host-172-16-99-151:~/docker-compose# cat docker-compose.yml  
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  ports:
    - "80:80"
    - "443:443"
 
注:方便配置粘贴的小技巧
# echo 'set paste' > .vimrc
 
1.2.2:启动容器:
必须要在docker compose文件所在的目录执行:
root@host-172-16-99-151:~/docker-compose# docker-compose  up #前台启动
1.2.3:启动完成:
1.2.4:web访问测试:
1.2.5:后台启动服务:
#容器的在启动的时候,会给容器自定义一个名称
root@host-172-16-99-151:~/docker-compose# docker-compose  up -d
1.2.6:自定义容器名称:
root@host-172-16-99-151:~/docker-compose# cat docker-compose.yml
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web1  #自定义容器名称
  ports:
    - "80:80"
    - "443:443"
 
更改docker compose里面的容器名称后在启动容器,会重新初始化容器并更改容器名称
1.2.7:验证容器:
1.2.8:查看容器进程:
root@host-172-16-99-151:~/docker-compose# docker-compose  ps
 
1.3:从docker compose启动多个容器:
1.3.1:编辑docker-compose文件:
root@host-172-16-99-151:~/docker-compose# cat docker-compose.yml
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web1
  ports:
    - "80:80"
    - "443:443"
 
web2: #每一个容器一个ID
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web2
  ports:
    - "81:80"
    - "444:443"
 
1.3.2:重新启动容器:
root@host-172-16-99-151:~/docker-compose# docker-compose  stop
root@host-172-16-99-151:~/docker-compose# docker-compose  up –d
7.3.3:web访问测试:
 
1.4:定义数据卷挂载:
1.4.1:创建数据目录和文件:
root@host-172-16-99-151:~# mkdir -p /data/nginx  
root@host-172-16-99-151:~# echo "Test Nginx Volume" > /data/nginx/index.html
1.4.2:编辑compose配置文件:
root@host-172-16-99-151:~/docker-compose# vim docker-compose.yml
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web1
  volumes:
    - /data/nginx:/usr/share/nginx/html
  ports:
    - "80:80"
    - "443:443"
 
web2:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web2
  ports:
    - "81:80"
    - "444:443"
1.4.3:重启容器:
root@host-172-16-99-151:~/docker-compose# docker-compose  stop
root@host-172-16-99-151:~/docker-compose# docker-compose  up -d
1.4.4:验证web访问:
#可以发现,同一个文件,数据卷的优先级比镜像内的文件优先级高
 
1.4.5:其他常用命令:
1.4.5.2:重启所以容器:
root@host-172-16-99-151:~/docker-compose# docker-compose restart
1.4.5.3:停止和启动单个容器:
root@host-172-16-99-151:~/docker-compose# docker-compose stop  web1
root@host-172-16-99-151:~/docker-compose# docker-compose  start web1
1.4.5.4:停止和启动所有容器:
root@host-172-16-99-151:~/docker-compose# docker-compose  stop
root@host-172-16-99-151:~/docker-compose# docker-compose  start
 
 
 

猜你喜欢

转载自www.cnblogs.com/dexter-wang/p/12484842.html