Docker-compose
为什么使用docker-compose
原来docker只能通过shell脚本的方式启动。
我认为使用docker-compose好处主要有2个。第一个是可以自行编排多容器的依赖关系和启动顺序;第二点是可以把繁杂的配置信息持久化保存,方便修改和查看。
docker-compose的安装
👇🏻安装docker-compose的步骤,请移步之前写过的另一篇文章👇🏻
常用命令介绍
- 在后台正常启动 指定名称
docker-compose up -d postgresql
- 指定启动配置文件
docker-compose -f docker-compose.yaml up -d postgresql
- 在halo-postgresql中不启动关联容器,并容器执行postgresql -v 执行完成后删除容器
docker-compose run --no-deps --rm halo-postgresql postgresql -v
- 进入指定的容器
docker-compose exec nginx postgresql
- 删除容器,镜像
docker-compose down postgresql
- 只删除容器
docker rm -f <id>
- 显示所有容器
docker-compose ps
- 重新启动postgresql容器
docker-compose restart postgresql
- 构建镜像
docker-compose build postgresql
- 不带缓存的构建
docker-compose build --no-cache postgresql
- 查看nginx的日志
docker-compose logs postgresql
- 查看nginx的实时日志
docker-compose logs -f postgresql
- 验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。
docker-compose config -q
- 以json的形式输出nginx的docker日志
docker-compose events --json postgresql
- 暂停nignx容器
docker-compose pause postgresql
- 恢复ningx容器
docker-compose unpause postgresql
- 删除容器(删除前必须关闭容器)
docker-compose rm postgresql
- 停止nignx容器
docker-compose stop postgresql
- 启动nignx容器
docker-compose start postgresql
docker-compose 配置文件
一个非常简单的yaml配置
- 暴露80,81,443端口 ports
- 和宿主机磁盘位置映射关系 volumes
- 加载镜像的名称 image
- 启动容器的名称 nginxProxyManager
- 重新启动的方式 restart
version: '3'
services:
nginxProxyManager:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # 不建议修改端口
- '81:81' # 可以把冒号左边的 81 端口修改成你服务器上没有被占用的端口
- '443:443' # 不建议修改端口
volumes:
- ./data:/data # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 data 目录,用于存放数据,如果不存在的话,会自动创建
- ./letsencrypt:/etc/letsencrypt # 点号表示当前文件夹,冒号左边的意思是在当前文件夹下创建一个 letsencrypt 目录,用于存放证书,如果不存在的话,会自动创建