Docker compose 是用来编排很多docker容器时启动顺序的工具,单个容器可以使用docker run 来启动,两三个也可以用docker run 来启动,但是,实际生产环境中,一个项目需要很多docker容器相互依赖,这时候想要一个一个启动费事费时。这时候就需要一个工具来解决这个问题。docker compose 的出现,解决了一个项目多容器启动时的复杂性。
环境:centos7.2
主机:192.168.1.200
一:安装
1:从github上下载docker-compose二进制文件安装
1 curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose 2 chmod +x /usr/bin/docker-compose
注:如果下载的路径没有在/usr/bin下面,请做软连接到/usr/bin下。
2:pip安装
1 pip install docker-compose
注:需要安装python才有pip功能,Linux 自带python2.7,但没有pip
二:使用
实验目的:使用docker-compose 编排工具搭建wordpress容器。
1:创建wordpress工作目录。
1 mkdir /docker/wordpress/ 2 cd /docker/wordpress/
2:编辑compose.yml(compose配置文件)
1 vim docker-compose.yml
wordpress: image: wordpress links: - db:mysql ports: - 80:80 db: image: mariadb volumes: - /docker-compose/mysql/:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: 123456
注解:以下代码用于解释,需要代码请复制上面的代码。
1 wordpress: 容器模块 2 image: 镜像模块 3 wordpress 镜像名称,这里是从docker hub下载wordpress镜像。 4 links: link模块,用来链接2个容器之间的通信,容器内直接通信。官方不推荐使用这种方式来进行容器内的通信,后续版本会移除。官方文档:https://docs.docker.com/network/links/ 5 - db:mysql db是wordpress容器在link下mysql的别名。 6 ports: ports模块,用于端口映射。 7 - 80:80 将wordpress容器内的80端口映射到宿主机的真实80端口上,就可以通过访问真实主机(宿主机)的端口访问到容器内的80端口。 8 db: 容器模块 9 image: 镜像模块 10 mariadb 从docker hub 下载mariadb镜像。 11 volumes: 文件系统模块,由于设计到docker工作原理,请自行移步至官方文档理解:https://docs.docker.com/storage/volumes/ 12 - /docker-compose/mysql/:/var/lib/mysql 将宿主机的/docker-compose/mysql/目录映射到容器内/var/lib/mysql目录。两个目录中的文件实时同步。下篇文档详细讲解。
13 environment: 参数模块
14 MYSQL_ROOT_PASSWORD: 123456 指定mariadb容器的初始密码为123456
3:执行wordpress项目
注:执行时必须在compose.yml(compose配置文件)目录下执行。
1 cd /docker/wordpress/ 2 docker-compose up -d
注:-d 后台运行。