容器自动编排工具----Docker-compose
在生产环境中经常使用Docker Compose来定义和运行多个Docker容器,不仅如此再也不需要通过shell脚本来启动容器。然而Docker compose需要通过YAML语言来编写。
一、YAML语言的使用规则
我们在编写docker compose时需要注意一下几点:
yaml语言:1.不支持tab制表符的缩进。
2.通常开头需要空两格。
3.字符需要缩进一个,如冒号、逗号、横杆。
4.可以用井号进行注释。
5.特殊字符需要用单引号引起来。
6.布尔值需要用用好引起来。
三、docker compose在配置时的常用字段和命令
1.常用的字段描述
2.docker compose常用的命令
四、编写nginx的docker compose
首先,需要先下载docker-compose。
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
下载好的docker-compose没有执行权限,所以需要提权操作。
chmod +x /usr/local/bin/docker-compose
这样我们就可以使用docker-compose命令了。
compose的使用基本格式为:
docker-compose [options] [CMD] [ARGS...]
docker-compose的一些可选项为:
--version:打印版本并退出
--verbose:输出更多调试信息
-f,--file 适用特定的compose模板
-p,--project-name :指定项目名
下面就是具体怎么使用docker-compose制作nginx镜像:
1.在可以执行docker-compose命令后,我们需要创建一个目录在执行compose。
2.在工作目录下在创建一个目录用于存放dockerfile相关文件。
mkdir nginx
cd nginx
将上一期制作nginx的Dockerfile复制进来并且还包含源码包和run.sh
nginx的dockerfile这里不再赘述有兴趣的可以看我上一期的dockerfile实战。
3.开始在工作目录下编写docker-compose.yml
现在在工作目录下没有docker-compose.yml,需要我们自己编写。
我们在同一路径下创建一个nginx的站点,到时候容器就挂载到此站点之中。
mkdir web
echo "66666" > index.html
现在开始编写docker-compose.yml
#使用的compose版本
version: '3'
#创建的服务为nginx
services:
nginx:
#创建的容器主机名为:nginx01
hostname: nginx01
#基于的dockerfile的目录路径
build:
context: ./nginx
dockerfile: Dockerfile
#容器映射出的端口号
ports:
- 8080:80
- 81:443
#创建的网络名称
networks:
- cluster
#使用外部目录挂载到容器内部
volumes:
- ./web:/usr/local/nginx/html
networks:
cluster:
~
docker-compose.yml编写好了之后,下面开始运行:
docker-compose -f docker-compose.yml up -d
运行docker-compose一守护进程up状态运行。
最后我们看到容器成功运行起来。
可以在宿主机是哪个成功查看。