Docker compose 是用来编排不少docker容器时启动顺序的工具,单个容器能够使用docker run 来启动,两三个也能够用docker run 来启动,可是,实际生产环境中,一个项目须要不少docker容器相互依赖,这时候想要一个一个启动费事费时。这时候就须要一个工具来解决这个问题。docker compose 的出现,解决了一个项目多容器启动时的复杂性。python
环境:centos7.2mysql
主机:192.168.1.200git
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下。github
1 pip install docker-compose
注:须要安装python才有pip功能,Linux 自带python2.7,但没有pipsql
1 mkdir /docker/wordpress/ 2 cd /docker/wordpress/
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
注:执行时必须在compose.yml(compose配置文件)目录下执行。docker
1 cd /docker/wordpress/ 2 docker-compose up -d
注:-d 后台运行。vim