前面我们使用 docker
的时候,定义 Dockerfile
文件,然后使用 docker build
、docker run
等等命令,有没有觉得很麻烦呀,而且当容器多的时候,很多东西不好管理和记录,挺不方便。这时候我们的 docker compose
神器横空出世了。
docker compose 是什么呢?
可以理解为多容器的自动化管理工具。将 多容器docker
动作拆分成一系列配置信息(新建一个 docker-compose.yml
来保存配置信息),然后通过 docker-compose up
命令一键化运行,实现了docker 自动化部署。 docker compose
可以做很多事,比如:网络自定义、映射磁盘、微服务多实例部署等,同时可以提高工作效率,降低维护成本。
docker compose 安装
- 安装命令
curl -L https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
- 查看安装
docker-compose -v
docker-compose 常见命令
-
docker-compose ps
列出所有运行容器 -
docker-compose build
构建或者重新构建服务 -
docker-compose start
启动构建服务docker-compose start 构建的服务名称
-
docker-compose stop 构建的服务名称
关闭启动服务 -
docker-compose rm
删除指定服务的容器docker-compose rm 构建的服务名称容器
-
docker-compose up
构建、启动容器,docker-compose up -d
-d 可以后台启动 -
docker-compose kill
kill 指定运行的容器,docker-compose kill 运行的容器服务名称
docker-compose.yml 属性
-
version
指定docker-compose.yml 文件的写法格式,如:Version 1 file format
、Version 2 file format
、Version 2.1 file format
、Version 3 file format
,其中Version 1 file format
逐渐被弃用;使用方式如:version: '3'
-
services
多个容器集合 -
image
指定服务所使用的镜像 -
ports
对外暴露的端口定义,和 expose 对应,可以是多个
ports: # 暴露端口信息 - "宿主机端口:容器暴露端口"
- "8763:8763"
- "8763:8763"
-
links
将指定容器连接到当前连接,可以设置别名,避免ip方式
导致的容器重启动态改变的无法连接情况
links: # 指定服务名称:别名
- docker-compose-eureka-server:compose-eureka
-
volumes
卷挂载路径设置
volumes:
- /lib
- /var
-
logs
输出日志信息
--no-color 单色输出,不显示其他颜.
-f, --follow 跟踪日志输出,就是可以实时查看日志
-t, --timestamps 显示时间戳
--tail 从日志的结尾显示,--tail=200
如:docker-compose logs -f 指定运行容器服务名称
,docker-compose logs -f nginx
- 待续
利用 docker-compose 启动 nginx 容器
- 编写
docker-compose.yml
,内容如下:
version: '2' # 表示该docker-compose.yml文件使用的是Version 2 file format
services: # Version 2 file format的固定写法,为project定义服务
nginx: # 指定服务名称
image: nginx # 指定服务所使用的镜像
ports: # 暴露端口信息
- 80:80
- 使用
docker-compose up
命令启动
docker-compose up
或者docker-compose up -d
后台启动
-
浏览器访问
看完,放松下!
如有不对的地方,望多多指教,谢谢!
作者:逐暗者(转载请注明出处)