Docker Compose是容器编排工具,用来定义和运行由多个容器组成的应用。使用 compose,可以通过 yaml文件定义应用程序的各个服务,并由单个命令完成应用的创建和启动。允许用户在一个模板(yaml格式)中定义一组相关联的容器,会根据–link等参数,对启动的优先级进行排序。
YUML是一种 标记语言很直观的数据序列化格式
文件格式及编写注意事项
不支持制表符tab键缩进,需要使用空格缩进 通常开头缩进两个空格 字符后缩进1个空格,如冒号、逗号、横杆 用#号注释 如果包含特殊字符用单引号引起来 布尔值必须用引号括起来
不支持制表符tab键缩进,需要使用空格缩进
通常开头缩进两个空格
字符后缩进1个空格,如冒号、逗号、横杆
用#号注释
如果包含特殊字符用单引号引起来
布尔值必须用引号括起来
docker-compose -h # 查看帮助 docker-compose up # 创建并运行所有容器 docker-compose up -d # 创建并后台运行所有容器 docker-compose ps # 显示所用容器信息 docker-compose -f docker-compose.yml up -d # 指定模板 docker-compose down # 停止并删除容器、网络、卷、镜像。 docker-compose rm # 删除容器 docker-compose logs # 查看容器输出日志 docker-compose pull # 拉取依赖镜像 dokcer-compose config # 检查配置 dokcer-compose config -q # 验证yaml配置文件是否正确,有问题才有输出 docker-compose pause # 暂停容器 docker-compose unpause # 恢复暂停 docker-compose restart # 重启服务 docker-compose start # 启动服务 docker-compose stop : # 停止服务
docker-compose [options][COMMAND][ARGS...]
--verbose 输出更多调试信息 --version 打印版本并退出 -f,--file FILE使用特定的compose模板文件,默认为docker-compose.yml -p,--project-name NAME指定项目名称,默认使用目录名称
[root@localhost ~]# rz -E rz waiting to receive. #给下载好的docker-compose赋予权限 [root@localhost ~]# chmod +x docker-compose #将下载好的docker-compose复制到/usr/local/bin目录下 [root@localhost ~]# cp -p docker-compose /usr/local/bin/
(将nginx软件包拷贝到nginx目录下)
[root@localhost compose_nginx]# mkdir nginx [root@localhost compose_nginx]# cd nginx/ [root@localhost nginx]# vim Dockerfile FROM centos:7 RUN yum -y update RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make RUN useradd -M -s /sbin/nologin nginx ADD nginx-1.12.0.tar.gz /usr/local/src WORKDIR /usr/local/src WORKDIR nginx-1.12.0 RUN ./configure \ --prefix=/usr/local/nginx \ --user= nginx \ --group=nginx \ --with-http_stub_status_module && make && make install ENV PATH /usr/local/nginx/sbin:$PATH EXPOSE 80 EXPOSE 443 RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf ADD run.sh /run.sh RUN chmod 755 /run.sh CMD ["/run.sh"] '//编写启动脚本' [root@localhost nginx]# vim run.sh #!/bin/bash /usr/local/nginx/sbin/nginx #把nginx包复制到nginx目录 [root@localhost nginx]# ls Dockfile nginx-1.12.0.tar.gz run.sh
[root@localhost nginx]# cd .. [root@localhost compose_nginx]# vim docker-compose.yml '//冒号后面注意有空格' version: '3' services: nginx: hostname: nginx build: context: ./nginx dockerfile: Dockerfile ports: - 1216:80 - 1217:443 networks: - cluster volumes: - ./wwwroot:/usr/ local/nginx/html networks: cluster:
#执行开启 [root@localhost compose_nginx]# docker-compose -f docker-compose.yml up -d [root@localhost compose_nginx]# ls docker-compose.yml nginx wwwroot #在站点目录下创建一个网页,用浏览器访问是否可以正常显示 [root@localhost compose_nginx]# cd wwwroot/ '//编写站点信息' [root@localhost wwwroot]# vim index.html <h1>this is shuai web</h1> #下载tree查看组织结构 [root@localhost compose_nginx]# yum install tree -y [root@localhost compose_nginx]# tree ./ ./ ├── docker-compose.yml ├── nginx │ ├── Dockerfile │ ├── nginx-1.12.0.tar.gz │ └── run.sh └── wwwroot └── index.html
[root@localhost compose_nginx]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE compose_nginx_nginx latest 178d32644ae3 13 minutes ago 480MB centos 7 7e6257c9f8d8 6 weeks ago 203MB #查看容器 [root@localhost compose_nginx]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0874ae4fe802 compose_nginx_nginx "/run.sh" 13 minutes ago Up 13 minutes 0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp compose_nginx_nginx_1 8fb37f271c31 centos:7 "/bin/bash" 2 hours ago Up 2 hours niu
本次实验结束感谢观看.