Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用Compose文件来配置应用程序的服务。然后,使用单个命令,您可以从配置中创建并启动所有服务。
Compose非常适合开发,测试和登台环境以及CI工作流程。
(1)官方文档
(2)使用Compose基本上是一个三步过程
(3)一个 docker-compose.yml 文件案例:
version: ‘2‘ services: web: build: . ports: - "5000:5000" volumes: - .:/code redis: image: redis
有关Compose文件的详细信息,请参阅 Compose文件参考。
(4)Compose具有管理应用程序整个生命周期的命令:
(1)前提
Docker Compose 依靠Docker Engine 进行任何有意义的工作,因此请确保您已在本地或远程安装Docker Engine,具体取决于您的设置。
要以非root用户身份运行Compose,请参阅以非root用户身份管理Docker。
(2)安装系统(主要讲linux、pip安装)
(1)下载安装
在gitlab https://github.com/docker/compose/releases 上查询适合自己的版本
我这里下载的是1.23.2 版本
$ sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
(2)添加执行权限
$ chmod +x /usr/local/bin/docker-compose
(3)安装完成,查询版本
$ docker-compose --version docker-compose version 1.23.2, build 1110ad01
如果从Compose 1.2或更早版本升级,请在升级Compose后删除或迁移现有容器。这是因为,从版本1.3开始,Compose使用Docker标签来跟踪容器,并且需要重新创建容器以添加标签。
如果Compose检测到没有标签创建的容器,它将拒绝运行,因此您最终不会使用两组。如果要继续使用现有容器(例如,因为它们具有要保留的数据卷),可以使用Compose 1.5.x使用以下命令迁移它们:
# docker-compose migrate-to-labels
或者,如果您不担心保留它们,可以将它们删除。撰写只是创建新的。
# docker container rm -f -v myapp_web_1 myapp_db_1 ...
正常系统安装卸载:
# sudo rm /usr/local/bin/docker-compose
pip安装卸载:
# pip uninstall docker-compose
A主机:192.168.7.100
B主机:192.168.7.102
C主机:192.168.7.103
1、安装python环境、pip命令以及docker-compose包
# yum install python-pip -y # pip install --upgrade-pip # pip install docker-compose
2、在C主机启动harbor服务,然后创建一个项目:linux(harbor安装过程见https://www.cnblogs.com/struggle-1216/p/12197845.html)
[root@openstack harbor]# docker-compose start Starting log ... done Starting registry ... done Starting registryctl ... done Starting postgresql ... done Starting adminserver ... done Starting core ... done Starting portal ... done Starting redis ... done Starting jobservice ... done Starting proxy ... done
在配置文件中修改文件,作为开机启动
[root@openstack harbor]# pwd /usr/local/src/harbor [root@openstack harbor]# vim /etc/rc.d/rc.local #修改rc.local配置文件 cd /usr/local/src/harbor && docker-compose start [root@openstack harbor]# chmod +x /etc/rc.d/rc.local #加上执行权限
2、在A主机将之前创建的haproxy镜像打标签并传到harbor上。
[root@centos-7 src]# docker tag centos-haproxy:v1.8.17 192.168.7.103/linux/centos-haproxy:v1.8.17 #给haproxy打标签 [root@centos-7 src]# docker login 192.168.7.103 #登陆harbor服务 Username: admin Password: [root@centos-7 src]# docker push 192.168.7.103/linux/centos-haproxy:v1.8.17 #将haproxy上传到harbor上
1、在指定的目录下创建compose.yml文件
[root@dockerwordpress]#cat docker-compose.yml version: ‘3.3‘ services: wordpress: depends_on: - db image: wordpress:latest volumes: - wordpress_files:/var/www/html ports: - "8080:80" # 指定宿主机的端口号,左边时宿主机的暴露端口号,右边是容器暴露端口号 restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_NAME: wpdb # 指定数据库名称 WORDPRESS_DB_USER: wpuser # 指定wordpass名称 WORDPRESS_DB_PASSWORD: wppass # 指定wordpass名称 db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: centos # 指定数据库密码 MYSQL_DATABASE: wpdb # 指定数据库名称,与上面一致 MYSQL_USER: wpuser # 与上面的wordpass名称一致 MYSQL_PASSWORD: wppass # 与上面指定名称一致 volumes: wordpress_files: db_data:
# docker pull wordpress # docker pull mysql:5.7
[root@dockerwordpress]#docker-compose up -d # 第一次启动使用up选项,-d是在后台启动容器 Creating network "wordpress_default" with the default driver Creating volume "wordpress_wordpress_files" with default driver Creating wordpress_db_1 ... done Creating wordpress_db_1 ... Creating wordpress_wordpress_1 ... done
1、访问192.168.7.101:8080的URL,此时就会就会访问wordpress
Docker之九---容器编排工具Docker Compose详解
原文:https://www.cnblogs.com/struggle-1216/p/12207031.html