目录
四、Docker compose常用命令(yaml文件中的参数)
Docker可以将应用程序及环境很方便的以容器的形式启动,但当应用程序依赖的服务比较多,或是遇到一个大系统拆分的服务很多时,如果还一个一个的根据镜像启动容器,那就有点累人了,到这有很多小伙伴会说:弄个脚本就搞定啦;要的就是这个思路,Docker提供了一个叫Docker Compose的工具。
Docker Compose 是一个用于定义和运行多个容器服务的 Docker 应用程序工具;搭配使用 YAML 文件来配置应用程序服务,然后运行Docker Compose命令,一键启动所有容器服务。
①、层级分明:使用首部空格代表层级关系
②、使用键值对key-value来表示参数,可以是一个key-value或者key-values
③、使用#号代表注释
④、不知道Tab制表符
⑤、“-”、“:”后面的valuesu需要空一格
⑥、一个yaml文件中,可以定义多i个资源模块
| 字段 | 描述 |
| build 、dockerfile 、context | 指定Dockerfile文件名构建镜像上下文路径 |
| image | 指定镜像 |
| command | 执行命令,覆盖默认命令 |
| container name | 指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale
|
| deploy | 指定部署和运行服务相关配置,只能在Swarm模式使用 |
| environment | 添加环境变量 |
| networks | 加入网络 |
| ports | 暴露容器端口,与-p相同,但端口不能低于60 |
| volumes | 挂载宿主机路径或命令卷 |
| restart | 重启策略,默认no,always,no-failure,unless-stoped |
| hostname | 容器主机名 |
| 字段 | 描述 |
| build | 重新构建服务 |
| ps | 列出容器 |
| exec | 在容器里面执行命令 |
| scale | 指定一个服务容器的启动数量 |
| top | 显示容器进程 |
| logs | 查看容器输出 |
| down | 删除容器、网络、数据卷和镜像 |
| up | 创建和启动容器 |
| stop/start/restart | 停止/启动/重启网络 |
### 下载
[root@zwb_docker ~]# curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` >/usr/local/bin/docker-compose
### 给与执行权限
[root@zwb_docker docker_compose]# cd /usr/local/bin/
[root@zwb_docker bin]# chmod +x docker-compose
[root@zwb_docker bin]# ll
总用量 8092
-rw-r--r-- 1 root root 9 10月 22 01:00 docker
-rwxr-xr-x 1 root root 8278112 10月 22 01:06 docker-compose

[root@zwb_docker bin]# yum -y install tree.x86_64 ## 安装一个tree的小工具
- [root@zwb_docker bin]# cd /
- [root@zwb_docker /]# mkdir docker_compose
- [root@zwb_docker /]# cd docker_compose/
- [root@zwb_docker docker_compose]# vim docker-compose.yaml
-
- version: '3'
- services:
- nginx:
- hostname: nginx
- build:
- context: ./nginx
- dockerfile: Dockerfile
- ports :
- - 1100:80
- - 1111:443
- networks:
- - mynet
- volumes:
- - ./wwwroot/:/usr/local/nginx/html
- networks:
- mynet:

- [root@zwb_docker docker_compose]# mkdir nginx
- [root@zwb_docker docker_compose]# cd nginx/
- [root@zwb_docker nginx]# vim Dockerfile
- FROM centos:7 as build
- ADD nginx-1.15.9.tar.gz /mnt
- WORKDIR /mnt/nginx-1.15.9
- RUN yum -y install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \
- yum clean all &&\
- sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \
- ./configure --prefix=/usr/local/nginx &> /dev/null && \
- make &>/dev/null && \
- make install &>/dev/null && \
- rm -fr /mnt/nginx-1.15.9
-
- FROM centos:7
- EXPOSE 80
- VOLUME ["/usr/local/nginx/html"]
- COPY --from=build /usr/local/nginx /usr/local/nginx
- CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off"]
-
-
- [root@zwb_docker nginx]# rz -E
-
- [root@zwb_docker docker_compose]# tree ./
- ./
- ├── docker-compose.yaml ## 创建模板脚本
- └── nginx
- ├── Dockerfile ## 创建容器脚本
- └── nginx-1.15.9.tar.gz ## 复制源码包
- [root@zwb_docker docker_compose]# docker-compose -f docker-compose.yaml up -d
- Building nginx
- Step 1/9 : FROM centos:7 as build
- ---> eeb6ee3f44bd
- Step 2/9 : ADD nginx-1.15.9.tar.gz /mnt
- ---> Using cache
- ---> 149e658c2e1d
- Step 3/9 : WORKDIR /mnt/nginx-1.15.9
- ---> Using cache
- ---> a365b54d24c5
- Step 4/9 : RUN yum -y install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && yum clean all && sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && ./configure --prefix=/usr/local/nginx &> /dev/null && make &>/dev/null && make install &>/dev/null && rm -rf /mnt/nginx-1.15.9
- ---> Running in 6153d1abc8e0
- Loaded plugins: fastestmirror, ovl
- Cleaning repos: base extras updates
- Cleaning up list of fastest mirrors
- Removing intermediate container 6153d1abc8e0
- ---> a4abe0a5169a
- Step 5/9 : FROM centos:7
- ---> eeb6ee3f44bd
- Step 6/9 : EXPOSE 80
- ---> Running in 9524a8a858fa
- Removing intermediate container 9524a8a858fa
- ---> c1953914c36b
- Step 7/9 : VOLUME ["/usr/local/nginx/html"]
- ---> Running in ccbd7c499894
- Removing intermediate container ccbd7c499894
- ---> fd9487e9f332
- Step 8/9 : COPY --from=build /usr/local/nginx /usr/local/nginx
- ---> fcb219e09061
- Step 9/9 : CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off"]
- ---> Running in d29d1f145a05
- Removing intermediate container d29d1f145a05
- ---> b300a241d07e
- Successfully built b300a241d07e
- Successfully tagged dockercompose_nginx:latest
- WARNING: Image for service nginx was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
- Creating dockercompose_nginx_1 ...
- Creating dockercompose_nginx_1 ... done