一.概况
Docker 有三个主要的作用:Build, Ship和Run。使用docker compose我们可以在Run的层面解决很多实际问题,如:通过创建compose(基于YUML语法)文件,在这个文件上面描述应用的架构,如使用什么镜像、数据卷、网络、绑定服务端口等等,然后再用一条命令就可以管理所有的服务(如启动、停止、重启、日志监控等等)。
docker-compose只会为每个镜像维护一个实例,每次运行docker-compose up的时候,compose会查找之前的容器,把旧容器的volume-data拷贝到容器中。除非手动用docker rm命令删除容器,否则CONTAINER ID不会发生改变。
这和docker run [images name]不一样,这个命令每次运行会新生成一个镜像的实例,即新容器,它们对应的CONTAINER ID也各不相同。
二.安装docker
1.确保linux系统满足docker要求( 64-bit version of CentOS 7.3,貌似内核也需要3.x以上的可以通过uname -a查看)
2.升级/安装 yum-utils sudo yum install -y yum-util
3.设置仓库$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.安装docker sudo yum -y install docker-ce
5.启动docker sudo systemctl start docker
6.测试是否安装成功 sudo docker run hello-world
7.开机启动docker sudo chkconfig docker on
8.配置Docker中国区官方镜像
使用vi修改 /etc/docker/daemon.json 文件并添加上"registry-mirrors": ["https://registry.docker-cn.com"],如下
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
systemctl restart docker
参考:https://docs.docker.com/install/linux/docker-ce/centos/#set-up-the-repository
三.安装docker-compose
1.curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
注:docker-compose其它版本参考 https://github.com/docker/compose/releases
2.chmod +x /usr/local/bin/docker-compose
3.检查是否安装成功 docker-compose version
四.应用例子
1.使用docker-compose构建三个nginx实例,建立nginx-docker文件夹,
2.建立volumes文件,用于映射docker实例中的文件
3.建立docker-compose.yml文件,内容如下
version:
'2'
services:
app1:
image: nginx
ports:
-
"11001:80"
networks:
-
"netName1"
volumes:
-
"./volumes/nginx_node1/conf.d/:/etc/nginx/conf.d/"
-
"./volumes/nginx_node1/web/:/usr/share/nginx/"
app2:
image: nginx
ports:
-
"11002:80"
networks:
-
"netName1"
volumes:
-
"./volumes/nginx_node2/conf.d/:/etc/nginx/conf.d/"
-
"./volumes/nginx_node2/web/:/usr/share/nginx/html"
app3:
image: nginx
ports:
-
"11003:80"
networks:
-
"netName2"
volumes:
-
"./volumes/nginx_node3/conf.d/:/etc/nginx/conf.d/"
-
"./volumes/nginx_node3/web/:/usr/share/nginx/html"
networks:
netName1:
driver: bridge
netName2:
driver: bridge
|
4.构建实际, -d代表在后台运行 docker-compose up -d
5.查看实例状态 docker-compose ps
6.其它命令
docker-compose restart #重启所有容器
docker-compose restart app1 #重启app1
docker-compose stop #停止所有容器
docker-compose stop app1 #停止app1
docker-compose exec app1 bash #进入容器app1
五.docker-compose yml配置文件详解
参考 : https://www.jianshu.com/p/2217cfed29d7
六.docker-compose命令说明
参考 : http://wiki.jikexueyuan.com/project/docker-technology-and-combat/commands.html