目录
1.docker compose安装
[root@docker /usr/local/bin]# curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 664 100 664 0 0 841 0 --:--:-- --:--:-- --:--:-- 841
100 10.3M 100 10.3M 0 0 2236k 0 0:00:04 0:00:04 --:--:-- 3304k
[root@docker /usr/local/bin]# ls
docker-compose
[root@docker /usr/local/bin]# chmod +x /usr/local/bin/docker-compose
[root@docker /usr/local/bin]# docker-compose -v
docker-compose version 1.21.1, build 5a3f1a3
2.容器编排
一个主机之上的多个容器的管理和编排
YAML是一种标记语言很直观的数据序列化格式
文件格式及编写注意事项
-
不支持制表符tab键缩进,需要使用空格缩进
-
通常开头缩进2个空格
-
字符后缩进1个空格,如冒号、逗号、横杆
-
用#号注释
-
如果包含特殊字符用单引号引起来
-
布尔值必须用引号括起来
3.compose配置常用字段
字段 | 描述 |
---|---|
build dockerfile context(路径) | 指定Dockerfile文件名构建镜像上下文路径 |
image | 指定镜像(镜像标签) |
command | 执行命令,覆盖默认命令 |
container name | 指定容器名称,由于容器名称是唯一的,如果指定自定 义名称,则无法scale(设置副本集) |
deploy | 指定部署和运行服务相关配置,只能在Swarm模式使用 |
environment | 添加环境变量 |
networks | 加入网络(docker网络中的网桥) |
ports | 暴露容器端口,与-p相同,但端口不能低于60 |
volumes | 挂载宿主机路径或命令卷(-v) |
restart | 重启策略,默认no,always,on-failure(返回码正常0,stop后是137,异常停止是非137)(只会重启返回码为0的),unless-stopped |
hostname | 容器主机名 |
4.docker compose常用命令
字段 | 描述 |
---|---|
build | 重新构建服务 |
ps | 列出容器 |
up | 创建和启动容器 |
exec | 在容器里面执行命令 |
scale | 指定一个服务容器启动数量 |
top | 显示容器进程 |
logs | 查看容器输出(日志) |
down | 删除容器、网络、数据卷和镜像 |
stop/start/restart | 停止/启动/重启服务 |
docker-compose build可以更新
docker logs -f(动态查看日志)
5.docker compose部署
[root@docker ~/test/docker-compose]# ls
docker-compose.yml nginx wwwroot
[root@docker ~/test/docker-compose]# tree
.
├── docker-compose.yml
├── nginx
│ ├── dockerfile
│ └── nginx-1.15.9.tar.gz
└── wwwroot
└── index.html
[root@docker ~/test/docker-compose]# vim docker-compose.yml
version: '3'
services:
nginx:
hostname: nginx
build:
context: ./nginx
dockerfile: dockerfile
ports:
- 666:80
- 667:443
networks:
- cluster
volumes:
- ./wwwroot:/usr/local/nginx/html
networks:
cluster:
[root@docker ~/test/docker-compose/nginx]# ls
dockerfile nginx-1.15.9.tar.gz
[root@docker ~/test/docker-compose/nginx]# vim dockerfile
FROM centos:7
RUN yum install pcre-devel zlib-devel gcc gcc-c++ make -y
ADD nginx-1.15.9.tar.gz /opt/data/nginx
WORKDIR /opt/data/nginx/nginx-1.15.9
RUN ./configure --prefix=/usr/local/nginx
RUN make && make install -j4
VOLUME ["/usr/local/nginx/html"]
EXPOSE 80
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
[root@docker ~/test/docker-compose]# cd wwwroot/
[root@docker ~/test/docker-compose/wwwroot]# ls
index.html
[root@docker ~/test/docker-compose/wwwroot]# vim index.html
hello oyyyy
[root@docker ~/test/docker-compose]# docker-compose -f docker-compose.yml up -d