@Chiang
2019-09-24T20:48:39.000000Z
字数 2614
阅读 591
Docker
- 服务 (service):一个应用容器,实际上可以运行多个相同镜像的实例。
- 项目 (project):由一组关联的应用容器组成的一个完整业务单元。
可见,一个项目可以由多个服务(容器)关联而成,Compose 面向项目进行管理。实现对 Docker 容器集群的快速编排。
# 创建并且启动所有容器
docker-compose up
# 创建并且启动多个容器
docker-compose up 服务1 服务2 ...
# 创建并且以后台运行的方式启动多个容器
docker-compose up -d 服务1 服务2 ...
# 启动服务
docker-compose start 服务1 服务2 ...
# 停止服务
docker-compose stop 服务1 服务2 ...
# 重启服务
docker-compose restart 服务1 服务2 ...
# 构建或者重新构建服务
docker-compose build 服务1 服务2 ...
# 删除并且停止容器
docker-compose rm 服务1 服务2 ...
# 停止并删除容器,网络,图像和挂载卷
docker-compose down 服务1 服务2 ...
# 找到映射IP
ifconfig
# 连接MySQL
mysql -h172.31.1.191 -uroot -p
# 查看具体某个命令的使用格式
docker-compose [COMMAND] --help
docker-compose help [COMMAND]
# 命令的基本的使用格式
docker-compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
命令选项
- -f, --file FILE 指定使用的 Compose 模板文件,默认为 docker-compose.yml,可以多次指定。
- -p, --project-name NAME 指定项目名称,默认将使用所在目录名称作为项目名。
- --x-networking 使用 Docker 的可拔插网络后端特性
- --x-network-driver DRIVER 指定网络后端的驱动,默认为 bridge
- --verbose 输出更多调试信息。
- -v, --version 打印版本并退出。
构建(重新构建)项目中的服务容器
# 格式
docker-compose build [options] [SERVICE...]
- --force-rm 删除构建过程中的临时容器
- --no-cache 构建镜像过程中不使用 cache(这将加长构建过程)
- --pull 始终尝试通过 pull 来获取更新版本的镜像
验证 Compose 文件格式是否正确,若正确则显示配置,若格式错误显示错误原因。
此命令将会停止 up 命令所启动的容器,并移除容器,网络,图像和挂载卷
进入指定的容器。
获得一个命令的帮助。
列出 Compose 文件中包含的镜像。
# 格式
docker-compose kill [options] [SERVICE...]
# 支持通过 -s 参数来指定发送的信号,例如通过如下指令发送 SIGINT 信号
docker-compose kill -s SIGINT
# 格式
docker-compose logs [options] [SERVICE...]
# 暂停一个服务容器
docker-compose pause [SERVICE...]
模板文件是使用 Compose 的核心,默认的模板文件名称为 docker-compose.yml,格式为 YAML 格式.
指定镜像
(需要 Dockerfile)等来自动构建生成镜像
如果使用 build 指令,在 Dockerfile 中设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需在 docker-compose.yml 中重复设置
context
指定 Dockerfile 所在文件夹的路径dockerfile
指定 Dockerfile 文件名arg
指令指定构建镜像时的变量cache_from
指定构建镜像的缓存
指定容器的内核能力(capacity)分配
# 让容器拥有所有能力可以指定为
cap_add:
- ALL
# 去掉 NET_ADMIN 能力可以指定为
cap_drop:
- NET_ADMIN
覆盖容器启动后默认执行的命令
command: echo "hello world"
参考资料:
Docker — 从入门到实践
歪麦博客
GitHub
我的GitHub