docker命令记录

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

主要使用的镜像及其命令

进入容器

1
docker exec -it 69d1 bash

jellyfin

1
2
3
4
5
6
7
8
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版本目前不能运行。

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

redis

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

postgres

1
2
3
4
5
6
7
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

1
2
3
4
5
6
7
8
9
10
11
12
13
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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

1
2
3
4
5
6
7
8
9
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

1
2
3
4
5
6
7
8
9
10
# 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

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

qiandao

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

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

watchtower

cleanup是删除标签为none的镜像

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

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

1
2
3
4
5
6
7
8
9
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? 注意后面有个问号。

1
2
3
4
5
docker run -d \
--name subconverter \
--restart=always \
-p 25500:25500 \
tindy2013/subconverter:latest

MySql

1
2
3
4
5
6
7
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

1
2
3
4
5
6
7
8
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

1
2
3
4
5
6
7
8
9
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

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

vaultwarden

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

1
2
3
4
5
6
7
8
# Docker-compose file
# docker-compose up -d
# docker-compose down && docker-compose up -d
# 更新
# cd ~/bitwarden
# docker-compose down
# docker pull bitwardenrs/server:latest
# docker-compose up -d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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

vlmcsd

1
docker run -d -p 1688:1688 --restart=always --name vlmcsd mikolatero/vlmcsd

CF-TUNNEL

参考:https://hackfang.me/nas-cloudflare-tunnel

1
docker run --name cloudflared -d --restart always cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <YourToken>

Openwrt

进不去控制页的话,参考:https://github.com/haiibo/OpenWrt/discussions/153

更新openwrt版本也是执行下方所有操作(除创建docker网络)

1
docker import openwrt-armvirt-64-generic-rootfs.tar.gz openwrt
1
2
3
4
5
6
7
8
9
10
11
docker run -d \
--restart always \
--name openwrt \
--network openwrt \
--privileged=true \
--ulimit nofile=16384:65536 \
openwrt \
/sbin/init

# 创建docker网络
docker network create -d macvlan --subnet=192.168.10.0/24 --gateway=192.168.10.1 -o parent=end0 openwrt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 进入openwrt容器
docker exec -it openwrt /bin/sh

# 修改网络设置
vi /etc/config/network
option gateway '192.168.10.1'
option dns '192.168.10.1'

# 保存后执行以下命令
uci set network.lan.ipaddr=192.168.10.123
uci set network.lan.gateway=192.168.10.1
uci set network.lan.dns=192.168.10.1
uci commit network
uci set dhcp.lan.ignore=1
uci commit dhcp
reboot

docker 加速

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

1
2
3
4
5
6
7
8
9
10
11
12
13
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