【汇总:Docker Compose 配置文件】
本文最后更新于 19 天前,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

DockerCompose配置汇总

前言

利用 Docker compose可以使 Docker 布署变得简单而强大。简单讲只需创建并配置 docker-compose.yml 文件,执行 Docker compose 命令即可。本文将平时使用过的 docker-compose.yml 文件进行收集汇总,便于随时查询使用。

Docker Compose 配置及使用

创建 docker-compose.yml 文件

在项目目录下,创建 docker-compose.yml 文件。

vim docker-compose.yml
或者
nano docker-compose.yml

或直接通过 SSH 登录服务器,通过 SFTP 像操作 Windows 一样直接创建 docker-compose.yml 文件。

运行 docker-compose 相关命令

检查端口是否被占用

配置完 docker-compose.yml 文件后,最好先检查一下端口是否被占用。
查看端口是否被占用(以 81 为例),输入:

lsof -i:81  #查看 81 端口是否被占用,如果被占用,重新自定义一个端口

如果什么都没出现,表示端口未被占用,就可以继续下面的操作了。
如果出现:

-bash: lsof: command not found

运行:

apt install lsof  #安装 lsof

如果端口没有被占用(被占用了就修改一下端口,比如改成 82,注意 docker 命令行里和防火墙都要改)

最后一定在项目当前路径下,执行 Docker compose 命令。

docker-compose up -d

查询当前服务器 IP

可以直接在命令行输入:

curl ip.sb

这样就可以输入 http://ip:81 访问了。

更新镜像

docker-compose down  # 下线

docker-compose pull  # 拉取 latest 镜像

docker-compose up -d # 重新上线

卸载镜像

在项目当前路径下(以 /root/data/docker_data/npm 为例),执行:

cd /root/data/docker_data/npm
docker-compose down
cp -r /root/data/docker_data/npm /root/data/docker_data/npm.archive  # 卸载前先备份,以防万一
rm -rf /root/data/docker_data/npm  # 完全删除映射到本地的数据

删除不再使用的 docker 对象

docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

Nginx Proxy Manager

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'  # 冒号左边可以改成自己服务器未被占用的端口
      - '81:81'  # 冒号左边可以改成自己服务器未被占用的端口
      - '443:443' # 冒号左边可以改成自己服务器未被占用的端口
    volumes:
      - ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
      - ./letsencrypt:/etc/letsencrypt  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中

默认访问地址及管理员信息:

登录地址: http://ip:81
Email: [email protected]
Password: changeme

qBittorrent

version: "2"
services:
  qbittorrent:
    image: linuxserver/qbittorrent
    container_name: qbittorrent
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai # 你的时区
      - UMASK_SET=022
      - WEBUI_PORT=8081 # 将此处修改成你欲使用的 WEB 管理平台端口
    volumes:
      - ~/qBittorrent/config:/config # 绝对路径请修改为自己的 config 文件夹
      - ~/qBittorrent/downloads:/downloads # 绝对路径请修改为自己的 downloads 文件夹
    ports:
      # 要使用的映射下载端口与内部下载端口,可保持默认,安装完成后在管理页面仍然可以改成其他端口。
      - 6881:6881
      - 6881:6881/udp
      # 此处WEB UI 目标端口与内部端口务必保证相同
      - 8081:8081
    restart: unless-stopped

默认访问地址及管理员信息:

登录地址: http://ip:8081
User: admin
Password: adminadmin

Tiny Tiny RSS

version: "3"
services:
  service.rss:
    image: wangqiru/ttrss:latest
    container_name: ttrss
    ports:
      - 8002:80  # 改成自己的端口
    environment:
      - SELF_URL_PATH=https://rss.665188.xyz/ # 设置访问域名,注意最好提前设置好域名,注意域名地址是否带有 "/" 符号。
      - DB_PASS=ttrss # use the same password defined in `database.postgres`
      - PUID=1000
      - PGID=1000
    volumes:
      - feed-icons:/var/www/feed-icons/
    networks:
      - public_access
      - service_only
      - database_only
    stdin_open: true
    tty: true
    restart: always

  service.mercury: # set Mercury Parser API endpoint to `service.mercury:3000` on TTRSS plugin setting page
    image: wangqiru/mercury-parser-api:latest
    container_name: mercury
    networks:
      - public_access
      - service_only
    restart: always

  service.opencc: # set OpenCC API endpoint to `service.opencc:3000` on TTRSS plugin setting page
    image: wangqiru/opencc-api-server:latest
    container_name: opencc
    environment:
      - NODE_ENV=production
    networks:
      - service_only
    restart: always

  database.postgres:
    image: postgres:13-alpine
    container_name: postgres
    environment:
      - POSTGRES_PASSWORD=ttrss # feel free to change the password
    volumes:
      - ~/postgres/data/:/var/lib/postgresql/data # persist postgres data to ~/postgres/data/ on the host
    networks:
      - database_only
    restart: always

  # utility.watchtower
  #   container_name: watchtower
  #   image: containrrr/watchtower:latest
  #   volumes:
  #     - /var/run/docker.sock:/var/run/docker.sock
  #   environment:
  #     - WATCHTOWER_CLEANUP=true
  #     - WATCHTOWER_POLL_INTERVAL=86400
  #   restart: always

volumes:
  feed-icons:

networks:
  public_access: # Provide the access for ttrss UI
  service_only: # Provide the communication network between services only
    internal: true
  database_only: # Provide the communication between ttrss and database only
    internal: true

默认访问地址及管理员信息:

登录地址: http://ip:8002
User: admin
Password: password

Hexo + 后台管理 + 评论

Hexo 部署:

version: '3.3'
services:
    hexo:
        container_name: hexo
        environment:
            - HEXO_SERVER_PORT=4000   # 不建议改,如果这边的 4000 改了,下面 ports 部分,冒号右边的 4000 也需要修改
            - GIT_USER=github_name       # 改成自己的用户名,可以随便写一个 
            - [email protected]  # 改成自己的邮箱,可以随便写一个
            - TZ=Asia/Shanghai  # 时区
        volumes:
            - './blog:/app'    # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 blog 文件夹中
        ports:
            - '8080:4000'     # 冒号左边可以改成自己服务器未被占用的端口
        image: spurin/hexo

Hexo 后台地址:

登录地址: http://ip:8080/admin

Twikoo 评论部署:

version: "3.5"
services:
  twikoo:
    container_name: twikoo
    image: imaegoo/twikoo
    environment:
      - TWIKOO_THROTTLE=1000 # IP 请求限流,当同一 IP 短时间内请求次数超过阈值将对该 IP 返回错误,默认 250,可以自己修改
    ports:
      - 4000:8080   # 冒号左边可以改成自己服务器未被占用的端口
    volumes:
      - ./data:/app/data  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
    restart: unless-stopped

AList

version: '3.3'
services:
    alist:
        restart: always
        volumes:
            - '/etc/alist:/opt/alist/data'  # 冒号左边的地址可以自己修改
        ports:
            - '5244:5244'  # 冒号左边的端口可以自己修改
        container_name: alist
        image: 'xhofe/alist:latest'

默认访问地址及管理员信息:

登录地址: http://ip:5244
User: admin
Password: admin

Umami

version: '3'
services:
  umami:
    image: docker.umami.dev/umami-software/umami:postgresql-latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://umami:umami@db:5432/umami
      DATABASE_TYPE: postgresql
      APP_SECRET: replace-me-with-a-random-string
    depends_on:
      - db
    restart: always
  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: umami
    volumes:
      - ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
      - ./umami-db-data:/var/lib/postgresql/data
    restart: always

默认访问地址及管理员信息:

登录地址: http://ip:3000
User: admin
Password: umami

IT-Tools

version: '3.9'
services:
  ittools:
    image: 'ghcr.io/corentinth/it-tools:latest'
    container_name: it-tools
    restart: unless-stopped
    ports:
      - '30811:80'

Nextcloud All-in-One

version: "3.8"
volumes:
 nextcloud_aio_mastercontainer:
   name: nextcloud_aio_mastercontainer
services:
 nextcloud:
   image: nextcloud/all-in-one:latest
   restart: unless-stopped
   container_name: nextcloud-aio-mastercontainer
   volumes:
     - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
     - /var/run/docker.sock:/var/run/docker.sock:ro
   ports:
     - 8090:8080 # change the port on the left side if it's already in use on your host system.
   environment:
     - APACHE_PORT=11000  # change this port number if 11000 is already in use on your host system.
     - APACHE_DISABLE_REWRITE_IP=1
     - NEXTCLOUD_TRUSTED_DOMAINS=pan.gugu.ovh 31.22.109.18 # Your domain name + proxy host IP
     - TRUSTED_PROXIES=31.22.109.18 # proxy host IP

Koodo Reader

version: '3.5'
services:
  koodo:
    container_name: koodo
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "80:80/tcp"
    restart: unless-stopped

Piwigo

  • 工具介绍:开源的网络照片库软件,,用于管理照片,专为组织、团队和个人设计。
  • Github 地址:https://github.com/Piwigo/Piwigo
version: "3"
services:
  piwigo:
    image: linuxserver/piwigo
    network_mode: bridge
    ports:
      - 8899:80
    links:
      - db

  db:
    image: mysql:5
    network_mode: bridge
    environment:
      MYSQL_USER: "piwigo"
      MYSQL_PASSWORD: "piwigo"
      MYSQL_DATABASE: "piwigo"
      MYSQL_RANDOM_ROOT_PASSWORD: "true"

持续更新中……

版权归属: E家之长
本文链接: https://www.5iehome.cc/archives/docker-compose-yml-summary.html
许可协议: 本文使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权
暂无评论

发送评论 编辑评论


上一篇
下一篇