1.什么是容器编排?
- 通过执行一个文件,将文件中所定义的多个容器依次启动,这就是容器编排
- 这个文件就是yaml文件
2.用来实现容器编排的工具
- docker-compose
3.安装docker-compose
[root@hya ~]# yum -y install docker-compose
-compose命令的使用
-
格式:docker-compose [选项]
-
选项
-
up:启动定义在yaml文件中的容器
-
down:关闭定义在yaml文件中的容器
-
-f :指定docker-compose所要读取的yaml文件
-
-d:在后台执行操作
-
ps:查看基于docker-compose所启动的容器的状态
-
logs:查收启动容器过程中的日志信息,用于排除错误
-
5.案例:编写文件来启动两个容器:nginx,redis,要求nginx容器可以直接与redis容器通信
1)创建yaml文件
[root@hya ~]# vim
version: '3'
services:
web:
image: nginx:1.17.10
ports:
- "80:80"
links:
- redis
redis:
image: redis:latest
2)启动容器
[root@hya ~]# docker-compose up -d
Creating root_redis_1 ... done
Creating root_redis_1 ...
Creating root_web_1 ... done
3)查看基于yaml文件启动的容器的状态
[root@hya ~]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------
root_redis_1 redis ... Up 6379/tcp
root_web_1 nginx -g daemon off; Up 0.0.0.0:80->80/tcp
4)查看启动容器过程中的日志信息
[root@hya ~]# docker-compose logs
Attaching to root_web_1, root_redis_1
web_1 | 192.168.253.1 - - [29/Jun/2020:07:41:12 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36" "-"
web_1 | 2020/06/29 07:41:12 [error] 8#8: *1 open() "/usr/share/nginx/html/" failed (2: No such file or directory), client: 192.168.253.1, server: localhost, request: "GET / HTTP/1.1", host: "192.168.253.110", referrer: "http://192.168.253.110/"
web_1 | 192.168.253.1 - - [29/Jun/2020:07:41:12 +0000] "GET / HTTP/1.1" 404 556 "http://192.168.253.110/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36" "-"
redis_1 | 1:C 29 Jun 2020 07:39:45.271 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
5)关闭基于yaml文件所启动的容器
[root@hya ~]# docker-compose down
Stopping root_web_1 ... done
Stopping root_redis_1 ... done
Removing root_web_1 ... done
Removing root_redis_1 ... done
Removing network root_default
总结
compose的使用非常类似于docker命令的使用,但是需要注意的是大部分的compose命令都需要到文件所在的目录下才能执行。
以守护进程模式运行加-d选项
$ docker-compose up -d
3.查看有哪些服务,使用docker-compose ps命令,非常类似于 docker 的ps命令
4.查看compose日志
$ docker-compose logs web(跟的是容器名)
5.停止compose服务
$ docker-compose stop
6.重启compose服务
$ docker-compose restart
compose服务
$ docker-compose kill
8.删除compose服务
$ docker-compose rm
9.如果你想单独启动一个服务
docker-compose up -d 指定服务名称
10.登录到某个容器中
例:docker-compose exec nginx bash 登录到nginx容器中
11.删除所有的容器镜像
docker-compose down 删除所有容器,镜像
12.构建镜像
例:docker-compose build nginx 构建镜像