docker-compose常用指令(备忘)

198 阅读2分钟

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配置

  1. 暴露80,81,443端口 ports
  2. 和宿主机磁盘位置映射关系 volumes
  3. 加载镜像的名称 image
  4. 启动容器的名称 nginxProxyManager
  5. 重新启动的方式 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 目录,用于存放证书,如果不存在的话,会自动创建