docker命令记录

平时有很多docker命令需要使用,之前都是记录在本地,有时候不方便查阅,所以现在搬运到博客上来。

主要使用的镜像及其命令

进入容器

docker exec -it 69d1 bash

jellyfin

docker run -d \
 --volume /home/omv/docker/.jellyfin:/config \
 --volume /home/omv/docker/.jellyfin:/cache \
 --volume /srv/dev-disk-by-label-Download/Movies/videos:/media \
 --user 1001:100 \
 --restart=unless-stopped \
 --name=jellyfin \
 jellyfin/jellyfin

scylla

最新docker版本目前不能运行。

docker run -d -p 8899:8899 -p 8081:8081 \
    --restart=always \
    -v scylla:/var/www/scylla \
    --name scylla \
    wildcat/scylla:latest

redis

docker run -p 6379:6379 -d \
    -v data:/data \
    --name redis \
    redis:latest redis-server --appendonly yes --requirepass "yourpasswd"

postgres

docker run -d \
    -p 8432:5432 \
    --name postgres \
    -e POSTGRES_PASSWORD=yourpasswd \
    -v pgdata:/var/lib/postgresql/data \
    --restart=always \
    postgres:12.5

pi-hole

docker run -d --name=pihole \
  -p 53:53/tcp -p 53:53/udp \
  -p 80:80 \
  -p 443:443 \
  -e TZ="Asia/Shanghai" \
  -e WEBPASSWORD=yourpasswd \
  -e ServerIP=192.168.199.123 \
  -e IPv6=false \
  --restart=unless-stopped \
  --dns=192.168.199.123 \
  -v etc-pihole:/etc/pihole/ \
  -v etc-dnsmasq.d:/etc/dnsmasq.d/ \
  pihole/pihole

nextcloud

docker run -p 8080:80 -d \
    --restart=always \
    -v /home/linux/docker/nextcloud:/var/www/html \
    -v /home/linux/docker/nextcloud/apps:/var/www/html/custom_apps \
    -v /home/linux/docker/nextcloud/config:/var/www/html/config \
    -v /home/linux/docker/nextcloud/data:/var/www/html/data \
    --name nextcloud \
    nextcloud
    
# 上面的版本是将数据存储在本地用户文件夹里面,下面的存放在/var/lib/docker/volumes/里面,请用下面这个版本
docker run -p 8080:80 -d \
    --restart=always \
    -v /var/lib/docker/volumes/nextcloud:/var/www/html \
    -v /var/lib/docker/volumes/nextcloud/apps:/var/www/html/custom_apps \
    -v /var/lib/docker/volumes/nextcloud/config:/var/www/html/config \
    -v /var/lib/docker/volumes/nextcloud/data:/var/www/html/data \
    --name nextcloud \
    nextcloud

netdata

docker run -d --name=netdata \
  --restart=always \
  -p 19999:19999 \
  -v /proc:/host/proc:ro \
  -v /sys:/host/sys:ro \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --cap-add SYS_PTRACE \
  --security-opt apparmor=unconfined \
  netdata/netdata

jhao104_proxy_pool

# redis 的ip改成docker网关的ip

docker run -d -p 5010:5010\
    --env db_type=REDIS \
    --env db_host=172.17.0.1 \
    --env db_port=6379 \
    --env db_password=yourpasswd \
    --restart=always \
    --name proxy_pool \
    jhao104/proxy_pool

unblockneteasemusic

docker run -d \
    --name unlockmusic \
    --restart unless-stopped \
    --log-opt max-size=1m \
    -p 12345:8080 \
p3terx/unblockneteasemusic \
    -o kuwo qq migu

qiandao

只能映射config文件夹,不能映射整个文件夹,会无法启动。

docker run -d --name qiandao -p 8200:80 -v qiandao:/usr/src/app/config   asdaragon/qiandao

watchtower

cleanup是删除标签为none的镜像

-s 是crontab格式的命令。表示每天一点运行。

最后一行表示只有容器名称在内的才更新。

sudo docker run -d \
    --name watchtower \
    --restart always \
    -e TZ=Asia/Shanghai \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower \
    --cleanup \
    -s "0 0 1 * * *" \
    bitwardenrs rsshub watchtower

subconverter

subconverter 的docker版本,可以自建或者配合边缘前端使用

后端地址填写:http://website:port/sub? 注意后面有个问号。

docker run -d \
    --name subconverter \
    --restart=always \
    -p 25500:25500 \
    tindy2013/subconverter:latest

MySql

docker run -d \
    --name mysql \
    --restart=always \
    -p 3306:3306 \
    -v mysqldata:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=my-secret-pw \
    mysql:latest

alist

docker run -d \
    --restart=always \
    -v /mnt/volume/alist:/opt/alist/data \
    -p 5244:5244 \
    -e PUID=0 \
    -e PGID=0 -e UMASK=022 \
    --name="alist" \
    xhofe/alist:latest

Home Assistant

docker run -d \
  --name homeassistant \
  --privileged \
  --restart=unless-stopped \
  -e TZ=Asia/Shanghai \
  -v /mnt/volume/homeassistant:/config \
  -v /run/dbus:/run/dbus:ro \
  --network=host \
  homeassistant/home-assistant:stable

RSSHub

docker run -d --name rsshub -p 1200:1200 diygod/rsshub

vaultwarden

注意:为docker-compose.yml文件,启动请使用:docker-compose up -d

# Docker-compose file
version: "3"

services:
  bitwarden:
    image: vaultwarden/server
    container_name: bitwardenrs
    restart: always
    ports:
        - "127.0.0.1:8081:80" #将宿主机8081端口映射到docker的80端口
        - "127.0.0.1:3012:3012"
    volumes:
      - ./bw-data:/data
    environment:
      # Timezone settings, important for Fail2ban to work
      - TZ=Asia/Shanghai
      - LOG_FILE=data/vaultwarden.log
      - EXTENDED_LOGGING='true'
      - LOG_LEVEL=warn
      # Beef up a bit
      - ROCKET_WORKERS=20
      - WEBSOCKET_ENABLED='true'
      # Hardening a bit
      - SIGNUPS_ALLOWED='false'
      #- DISABLE_ADMIN_TOKEN='true'
      #- ADMIN_TOKEN=YouRandomTokenHere
      - SHOW_PASSWORD_HINT='false'
      - DISABLE_ICON_DOWNLOAD='true'
      #- SMTP_HOST=smtphost
      #- SMTP_PORT=port
      #- SMTP_SSL='true'
      #- [email protected]
      #- SMTP_USERNAME=smtp_user_name
      #- SMTP_PASSWORD=smtp_password

docker 加速

编辑 /etc/docker/daemon.json 文件

nano /etc/docker/daemon.json
# 写入如下内容
{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}
# 然后重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
# 可以输入如下命令查看是否注册成功,查看Registry Mirrors的结果
sudo docker info