docker的存放位置 var/lib/docker
docker命令行

docker run表示运行容器,-p设置端口映射(宿主机端口:容器端口),--name设置容器名,--restart设置重启方式,-v表示卷的映射,最后是镜像的作者及名称(默认会去docker hub拉取镜像)。

1、自动挂载外接盘

blkid 

或者uuid,替换这个备用
UUID=你外接存储设备的uuid号 /media ntfs defaults,nofail 0 2
我挂载到/media下边的,以下所有镜像都挂在这个目录下边,修改需谨慎。

vim /etc/fstab

把上边替换后的复制进入

2、实现minidlna

作用:实现流媒体播放

docker run -d \
  --name minidlna \
  --net=host \
  -v /docker/minidlna:/etc/minidlna \
  -v /docker/minidlna/media:/media \
  lstcml/minidlna

标签说明:
latest:不支持rmvb,镜像大小较小
rmvb:支持rmvb,镜像大小较大
目录说明:
/etc/minidlna:配置文件目录
/media:扫描的媒体文件目录
浏览器打开:http://localhost:8200可查看扫描或设备连接情况
Mobile App推荐:海贝音乐、nplay

3、Samba

作用:局域网共享
host模式:

docker run -d \
  --name samba \
  --restart=always  \
  --net=host \
  -v /docker/samb/conf:/etc/samba \
  -v /docker/samb/share:/mnt/share \
  -v /docker/samb/data:/mnt/data \
  lstcml/samba

非host模式:

docker run -d \
  --name samba \
  --restart=always  \
  -p 137:137/udp \
  -p 138:138/udp \
  -p 139:139/tcp \
  -p 445:445/tcp \
  -v /docker/samb/conf:/etc/samba \
  -v /docker/samb/share:/mnt/share \
  -v /docker/samb/data:/mnt/data \
  lstcml/samba

注意:
1、如果是小钢炮或其他安装了samba服务的系统需要关闭自带samba服务,否则端口占用导致创建容器失败
2、如果访问没权限,说明映射到宿主机的目录没有权限,如/docker/samba/data,需基于对应读写权限(完整权限:chmod 777 /docker/samba/data)默认生成两个目录,默认用户账户密码:admin/admin
/etc/samba:配置文件目录
/mnt/share:匿名访问目录,拥有读写删权限
/mnt/data:用户访问目录,拥有读写删权限

4、安装并配置aria2

docker pull p3terx/aria2-pro
docker run -d  --restart unless-stopped --name aria2-pro    --log-opt max-size=1m     --network host     -e PUID=$UID     -e PGID=$GID     -e RPC_SECRET=123     -e DISK_CACHE=128M     -e RPC_PORT=6800     -e LISTEN_PORT=6888     -v /media/aria2/config:/config     -v /media/aria2:/downloads     p3terx/aria2-pro

5、docker版可道云

docker pull azking/kodexplorer:4.4.0-arm64
docker run -d --restart=always  --name kodexplorer -p 8001:80  -v /media/kodexplorer:/var/www/html azking/kodexplorer:4.4.0-arm64

或者用这个源

docker run -d \
  --name  kdcloud \
  -p 8068:80 \
  --restart=always \
  -v /docker/kdcloud:/var/www/html \
  lstcml/n1_kodcloud

浏览器中输入N1的ip地址+端口,如http://192.168.8.8:8068即可见证奇迹

新版可道云kodbox

作用:类似windows的web资源文件管理器目前最新版可道云kodbox

docker run -d \
  --name  kodbox \
  -p 8091:80 \
  --restart=always \
  -v /docker/kdcloud:/var/www/html \
  lstcml/kodbox

说明:
浏览器中输入http://192.168.8.8:8091即可见证奇迹

6、微力同步

作用:局域网通过同步工具,几乎覆盖全平*(windows、linux、群晖、安装、ios、openwrt等等)

docker run -d \
  --name verysync \
  --restart=always \
  -p 8076:8886 \
  -v /docker/versync/sync:/media \
  lstcml/n1_verysync

浏览器中输入N1的ip地址+8076端口,如http://192.168.8.8:8076即可见证奇迹,使用教程->灰机直达
主要是通过宿主机需同步目录映射到容器目录中,在容器中进行实时同步

7、轻量版Nginx+PHP

作用:用于建站,可以自行安装数据库

docker run \
  --name alpine-nginx-php \
  --restart=always \
  -d -p 8069:80 \
  -v /docker/alpine-nginx-php:/var/www/html \
  -e PHP_ERRORS=1 \
  -e PHP_UPLOAD_MAX_FILESIZE=250 \
  lstcml/alpine-nginx-php

N1中/var/www/html即为站点根目录,浏览器中输入N1的ip地址+8069端口,如http://192.168.8.8:8069即可见证奇迹

8、静态化博客hexo

作用:可用于搭建博客

docker run -d \
  --name blog \
  --restart=always \
  -p 8070:4000 \
  -v /docker/hexo:/hexo \
  lstcml/hexo

浏览器中输入N1的ip地址+4000端口,如http://192.168.8.8:8070即可见证奇迹,hexo具体使用教程请自行百度

9、蚂蚁笔记leanote

作用:自建笔记服务端

docker run -d \
  --name leanote \
  --restart=always \
  -p 8072:9000 \
  -v /docker/leanote/leanote/data:/data \
  lstcml/n1_leanote

浏览器中输入N1的ip地址+8072端口,如http://192.168.8.8:8072即可见证奇迹,windows、mac、ios、Android的客户端可以前往官网下载->飞机直达
注:客户端登录自建服务时,注意服务器地址最后不带/,如http://192.168.8.8:8072或http://xxx.xxx.com即可
admin/abc123 (管理员用户)
[email protected]/[email protected] (体验用户)

10、Webdav

作用:自建webdav服务器,支持中文文件或目录
脚本必须以管理员身份运行

docker run -d \
  --name webdav \
  --restart=always \
  -e USERNAME=webdav \
  -e PASSWORD=123456 \
  -v /media/webdav:/webdav \
  -p 8073:80 \
  lstcml/n1_webdav

ps:
1、如未自定义账号密码,默认为admin/passwd
2、已开启目录浏览,浏览地址为IP+端口号,如:如192.168.8.8:8073
3、挂载webdav地址为IP+端口号/webdav,如192.168.8.8:8073/webdav
4、部分Windows无法映射webdav的情况是因为win7以上默认不支持http,开启同时支持http和https:下载附件解压双击脚本即可
webdav.zip

11、Dosgame

作用:强大的回忆杀,重返小时候的小霸王、世嘉、Gameboy时代

docker run -d \
  --name dosgame \
  --restart=always \
  -p 8074:6000 \
  -v /docker/dosgame:/app/static/games/ \
  lstcml/dosgame

注:打包的镜像中只有42种游戏,下载更多游戏方法(目前共1898种游戏,共31.9G,所以悠着点,需要更多游戏的时候记得创建容器的时候把/app/static/games/挂载到移动硬盘后再去下载,否则后果不堪设想):

docker exec -it dosgame sh

进入容器后操作

mv /app/static/games/games.json /app/static/games/42games.json
mv /app/static/games/1898all_games.json /app/static/games/games.json
python /app/static/games/download_data.py

等待下载完后重启容器即可

docker restart dosgame

浏览器中输入N1的ip地址+8074端口,如http://192.168.8.8:8074即可见证奇迹

12、在线MD编辑器

作用:在线编辑MD文本,支持导出本地

docker run -d \
  --name markdown \
  --restart=always \
  -p 8075:2000 \
  lstcml/n1_markdown

浏览器中输入N1的ip地址+8075端口,如http://192.168.8.8:8075即可见证奇迹

13、喜马拉雅转泛播客

作用:一款喜马拉雅转泛播客的工具

docker run -d \
  --restart=always \
  --name xmlypf \
  -p 8077:5000 \
  lstcml/ximalaya-podcast-factory

浏览器中输入N1的ip地址+5000端口,如http://192.168.8.8:8077即可见证奇迹,使用很简单,打开就知道

13、安装并配置nextcloud

数据库,可选装,不装忽略。

docker run -d --restart=always --name mysqldb -v /meiad/nextcloud/mysqldb:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=密码1    -e MYSQL_DATABASE=数据库名称   -e MYSQL_USER=用户名       -e MYSQL_PASSWORD=密码2   mariadb

nextcloud范例-安装及配置。

docker pull nextcloud
docker run -d --restart=unless-stopped --name nextcloud -p 8080:80  -v /media/nextcloud:/var/www/html --link mysqldb:mysql  nextcloud  #没装数据库的话,这句删掉。

14、旁路由openwrt

网络设置

apt install ipset
ip link set eth0 promisc on
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 macnet

安装镜像

docker pull p3terx/openwrt-mini:latest
docker run -d  --restart always --name ladder --network macnet --privileged  p3terx/openwrt-mini:latest /sbin/init

配置ip和网关

docker  ps

获得容器ID

docker exec -it 容器ID sh

从armbian 进入openwrt镜像

vi /etc/config/network

编译openwrt镜像的网络设置
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.0.2' #设置openwrt的固定IP
option netmask '255.255.255.0'
option gateway '192.168.0.1' #网关/主路由IP

vi /etc/config/network 

编译openwrt镜像的网络设置
先按:i 编辑lan ip
打开文件修改完成后,需要如下命令:
先按:
【Esc】 键盘左上角
然后:
:wq!
解析:
: 必须要带
w:保存。
q:退出
!:强制保存退出。
root
admin
password

15、漂亮的相册

docker run -d \
--name=lychee-laravel \
--restart always \
-v /media/50001/lychee/srv/http/lychee-laravel/conf:/conf \
-v /media/50001/lychee/srv/http/lychee-laravel/uploads:/uploads \
-e PHP_TZ=Asia/Shanghai \
-e PHP_MAX_EXECUTION_TIME=600 \
-e DB_CONNECTION=sqlite \
-e DB_DATABASE=/conf/lychee.db \
-p 90:80 \
80x86/lychee:latest

16、漂亮的文件索引

docker run -d \
-p 8085:80 \
-p 8084:443 \
-e HTTP_AUTH="on" \
-e HTTP_USERNAME="my-username" \
-e HTTP_PASSWD="secret-password" \
-v /media/50001/home/my-files:/app/public \
--restart unless-stopped \
--mount type=tmpfs,destination=/tmp \
80x86/nginx-fancyindex

17、博客系统

docker run -d \
--name=typecho-blog \
--restart always \
--mount type=tmpfs,destination=/tmp \
-v /media/50001/blog/srv/http/typecho:/data \
-e PHP_TZ=Asia/Shanghai \
-e PHP_MAX_EXECUTION_TIME=600 \
-p 901:80 \
80x86/typecho:latest

18、花生壳内网版

作用:用于内网穿透,远程访问N1的http或tcp

docker run -d \
  --restart=always \
  --name oray \
  --mac-address 11:22:33:44:55:66 \
  lstcml/oray

其中--mac-address主要用于固定MAC地址,为了防止SN码每次在重启主机时候变化,后面的的12位MAC地址自行随机输入,官方内网穿透教程请参考-->飞机直达
获取SN码:ssh登录N1后,输入docker logs oray回车(oray是容器名称,如有更变自行替换)

14、花生壳蒲公英

作用:免费3个成员,同时加入一个虚拟局域网,可相互访问
目前发现与zerotier、n2n有冲突,导致容器重启后无法加入局域网,建议三选一

docker run -d \
  --restart=always \
  --device=/dev/net/tun \
  --net=host \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_ADMIN \
  --name pgy \
  lstcml/n1_pgy

进入容器:

docker exec -it pgy bash

按照提示输入花生壳注册的账号登录,然后手机安卓或水果机或PC电脑安装蒲公英,启动用输入虚拟局域网ip即可访问N1(默认全端口映射),官网资料

19、sshd

作用:基于alpine的ssh客户端与服务端,可用于作为跳板访问其他设备

docker run -d \
  --name sshd \
  --restart=always  \
  lstcml/sshd

注意,默认不设置密码下,每次重启容器root密码会更变,SSH账户为root,默认密码请查看容器日志

docker logs sshd

启动容器时设置ROOT密码

docker run -d --restart=always --name ssh -e PASSWORD=test123 lstcml/n1_sshd

20、百度云同步工具bypy

作用:可映射(挂载)主机的目录,通过bypy同步到百度云盘

docker run -dit \
  --name bypy \
  --restart=always \
  -v /docker/bypy/sync:/sync \
  lstcml/bypy

具体使用方法找了个百度的,自己看看-->飞机直达

21、mmPlayer

作用:也是个人音乐厅,接口来自网易云,支持登录网易云账号,可听个人歌单
注意:这个搭建可能相对麻烦一点,请仔细看清楚

docker run -d \
  --name mmplayer \
  -p 8079:8080 \
  -p 服务端端口:3000 \
  -e HOST=宿主机IP \
  -e SPORT=服务端端口 \
  lstcml/n1_mmplayer

实例:

docker run -d \
  --name mmplayer \
  -p 8079:8080 \
  -p 3210:3000 \
  -e HOST=192.168.8.188 \
  -e SPORT=3210 \
  lstcml/n1_mmplayer

HOST:输入宿主机,也就是N1的IP地址或域名也行
SPORT:必须与映射3000端口的宿主机端口一致

22、chfs

作用:一款漂亮的web管理器支持上传下载,支持webdav

docker run -d \
  --name chfs \
  --restart=always  \
  -e TIMEOUT=3600 \
  -p 8080:8080 \
  -v /docker/chfs:/data \
  lstcml/chfs

TIMEOUT:session过期时间,默认1440(24小时),单位为分钟

权限:

"":不可访问

创建用户:

docker exec chfs addusr 用户名 密码 权限

实例:

docker exec chfs addusr lstcml 123456 RWD

删除用户:

docker exec chfs delusr 用户名

实例:

docker exec chfs delusr lstcml

注:不管创建还是删除用户记得重启容器

23、zerotier

作用:内网穿透,把不同局域网机器加入同一虚拟局域网实现相互访问,类似蒲公英、n2n

docker run -d \
  --name zerotier \
  --restart=always \
  --device=/dev/net/tun \
  --net=host \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_ADMIN \
  lstcml/n1_zerotier

查看状态:

docker exec zerotier zerotier-cli info

加入网络:

docker exec zerotier zerotier-cli join NETWORK_ID

如果提示tun不存在:

docker: Error response from daemon: linux runtime spec devices: error gathering device information while adding custom device "/dev/net/tun": no such file or directory

可尝试启动:

modprobe tun

24、oneindex

作用:利用OneDrive打造专属分享型网盘

docker run -d \
  --name oneindex \
  -p 8086:80 \
  --restart=always \
  -v ~/oneindex/config:/var/www/html/config \
  -v ~/oneindex/cache:/var/www/html/cache \
  -e REFRESH_TOKEN='0 * * * *' \
  -e REFRESH_CACHE='*/10 * * * *' \
  lstcml/oneindex

说明:
浏览器中输入http://192.168.8.8:8086即可见证奇迹
REFRESH_TOKEN:使用crontab进行token更新,默认0 ,即每小时更新一次
REFRESH_CACHE:使用crontab进行缓存更新,默认/10 *,即每10分钟更新一次

25、Webdav

docker pull ugeek/webdav:arm
docker run --name webdav \
 --restart=unless-stopped \
  -p 80:80 \
  -v $HOME/docker/webdav(磁盘目录):/media  \
  -e USERNAME=用户名自设 \
  -e PASSWORD=密码自设 \
  -e TZ=Asia/Shanghai \
  -e UDI=1000 \
  -e GID=1000 \
    -d  ugeek/webdav:arm \

绿底 按需修改 ,管理地址http://xxxxxx:80

25、青龙安装

docker run -dit \
  -v $PWD/ql/config:/ql/config \
  -v $PWD/ql/log:/ql/log \
  -v $PWD/ql/db:/ql/db \
  -v $PWD/ql/repo:/ql/repo \
  -v $PWD/ql/raw:/ql/raw \
  -v $PWD/ql/scripts:/ql/scripts \
  -v $PWD/ql/jbot:/ql/jbot \
  -p 5700:5700 \
  --name qinglong \
  --hostname qinglong \
  --restart unless-stopped \
  whyour/qinglong:2.11.3

26、Docker中容器的备份、恢复和迁移

  1. 备份容器

首先,为了备份Docker中的容器,我们会想看看我们想要备份的容器列表。要达成该目的,我们需要在我们运行着Docker引擎,并已创建了容器的Linux机器中运行 docker ps 命令。

# docker ps
Docker Containers List

在此之后,我们要选择我们想要备份的容器,然后去创建该容器的快照。我们可以使用 docker commit 命令来创建快照。

# docker commit -p 30b8f18f20b4 container-backup
Docker Commit

该命令会生成一个作为Docker镜像的容器快照,我们可以通过运行 docker images 命令来查看Docker镜像,如下。

# docker images
Docker Images

正如我们所看见的,上面做的快照已经作为Docker镜像保存了。现在,为了备份该快照,我们有两个选择,一个是我们可以登录进Docker注册中心,并推送该镜像;另一个是我们可以将Docker镜像打包成tar包备份,以供今后使用。

如果我们想要在Docker注册中心上传或备份镜像,我们只需要运行 docker login 命令来登录进Docker注册中心,然后推送所需的镜像即可。

# docker login 172.16.101.192
Docker Login
# docker tag a25ddfec4d2a arunpyasi/container-backup:test
# docker push arunpyasi/container-backup
Docker Push

如果我们不想备份到docker注册中心,而是想要将此镜像保存在本地机器中,以供日后使用,那么我们可以将其作为tar包备份。要完成该操作,我们需要运行以下 docker save 命令。

# docker save -o ~/container-backup.tar container-backup
taking tarball backup

要验证tar包是否已经生成,我们只需要在保存tar包的目录中运行 ls 命令即可。

  1. 恢复容器

接下来,在我们成功备份了我们的Docker容器后,我们现在来恢复这些制作了Docker镜像快照的容器。如果我们已经在注册中心推送了这些Docker镜像,那么我们仅仅需要把那个Docker镜像拖回并直接运行即可。

# docker pull arunpyasi/container-backup:test
Docker Pull

但是,如果我们将这些Docker镜像作为tar包文件备份到了本地,那么我们只要使用 docker load 命令,后面加上tar包的备份路径,就可以加载该Docker镜像了。

# docker load -i ~/container-backup.tar

现在,为了确保这些Docker镜像已经加载成功,我们来运行 docker images 命令。

# docker images

在镜像被加载后,我们将用加载的镜像去运行Docker容器。

# docker run -d -p 80:80 container-backup
Restoring Docker Tarball
  1. 迁移Docker容器

迁移容器同时涉及到了上面两个操作,备份和恢复。我们可以将任何一个Docker容器从一台机器迁移到另一台机器。在迁移过程中,首先我们将把容器备份为Docker镜像快照。然后,该Docker镜像或者是被推送到了Docker注册中心,或者被作为tar包文件保存到了本地。如果我们将镜像推送到了Docker注册中心,我们简单地从任何我们想要的机器上使用 docker run 命令来恢复并运行该容器。但是,如果我们将镜像打包成tar包备份到了本地,我们只需要拷贝或移动该镜像到我们想要的机器上,加载该镜像并运行需要的容器即可。

Last modification:October 16th, 2022 at 09:22 pm
如果觉得我的文章对你有用,请随意赞赏