Docker 笔记

Linux Docker 安装

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

1
uname -r

安装一些必要的系统工具

1
yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息

1
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存

1
yum makecache fast

安装 Docker-ce

1
yum -y install docker-ce

启动 Docker 后台服务

1
systemctl start docker

中国镜像

USTC 临时镜像加速

1
--registry-mirror=https://docker.mirrors.ustc.edu.cn

全局镜像加速

1
2
3
4
5
6
7
8
cd /etc/docker
touch daemon.json
vim daemon.json

# 粘贴以下内容
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

PlantUML Server

启动 PlantUML Server

1
docker run -d -p 8080:8080 plantuml/plantuml-server:jetty

Docker — 从入门到实践

启动 Docker — 从入门到实践

1
docker run -it --rm -p 4000:80 dockerpracticecn/docker_practice

Docker 命令大全 Docker — 从入门到实践

docker mac

1
2
3
4
5
6
7
{
  "debug": true,
  "experimental": false,
  "registry-mirrors": [
    "http://hub-mirror.c.163.com"
  ]
}

docker samba

1
2
3
4
5
6
7
docker run -itd \
  --name samba \
  -p 139:139 \
  -p 445:445 \
  -v ~/WWW/docker/nas:/mount \
  -d dperson/samba -p \
  -s "public;/share"

手动安装宝塔

下载Docker

1
https://www.docker.com/products/docker-desktop

下载centos

1
docker pull centos

启动centos:增加文件映射

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
docker run -itd \
  --name centos-dev \
  -p 20:20 \
  -p 21:21 \
  -p 80:80 \
  -p 443:443 \
  -p 888:888 \
  -p 8888:8888 \
  -v /Volumes/E/www:/www \
  centos

进入容器

1
docker exec -it centos-dev bash

安装宝塔BT

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

docker部署

pch18/baota

通过host模式运行宝塔镜像

1
2
3
4
5
6
7
8
docker run -tid \
  --name lnmp \
  --net=host \
  --privileged=true \
  --shm-size=1g \
  --restart always \
  -v ~/WWW/wwwroot:/www/wwwroot \
  pch18/baota

通过bridge模式运行宝塔镜像

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
docker run -itd \
  --restart always \
  --name lnmp \
  --privileged=true \
  --shm-size=1g \
  -v ~/WWW/lnmp/wwwroot:/www/wwwroot \
  -v ~/WWW/lnmp/mysql:/www/server/data \
  -v ~/WWW/lnmp/vhost:/www/server/panel/vhost \
  -v ~/WWW/lnmp/backup:/www/backup \
  -p 80:80 \
  -p 443:443 \
  -p 3306:3306 \
  -p 6379:6379 \
  -p 8888:8888 \
  -p 888:888 \
  -p 21:21 \
  pch18/baota

删除容器

1
docker rm -fv baota

btpanel/btpanel

通过host模式运行宝塔镜像

1
2
3
4
5
6
7
8
9
docker run -d \
  --restart unless-stopped \
  --name lnmp \
  --net=host \
  -v ~/WWW/lnmp/wwwroot:/www/wwwroot \
  -v ~/WWW/lnmp/mysql:/www/server/data \
  -v ~/WWW/lnmp/vhost:/www/server/panel/vhost \
  -v ~/WWW/lnmp/backup:/www/backup \
  btpanel/btpanel:lnmp

通过bridge模式运行宝塔镜像

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
docker run -d \
  --name lnmp \
  --restart unless-stopped \
  -v ~/WWW/lnmp/wwwroot:/www/wwwroot \
  -p 8888:8888 \
  -p 443:443 \
  -p 80:80 \
  -p 888:888 \
  -p 21:21 \
  btpanel/btpanel:lnmp

docker mysql 独立部署

1
2
3
4
5
6
7
8
9
docker run -itd \
  --name mysql \
  --restart always \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v ~/WWW/docker/mysql/conf:/etc/mysql/conf.d \
  -v ~/WWW/docker/mysql/data:/var/lib/mysql \
  -v ~/WWW/docker/mysql/logs:/logs \
  -p 3306:3306 \
  mysql:5.7

UNI-APP Hbuilder 打包命令

1
cross-env UNI_INPUT_DIR=D:/backup/app/ubiquitous_uniapp/uniapp/ UNI_OUTPUT_DIR=D:/backup/app/ubiquitous_uniapp/uniapp/unpackage/dist/dev/app-plus UNI_PLATFORM=app-plus NODE_ENV=production node bin\uniapp-cli.js

docker gitea

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
docker run -d \
  --name gitea \
  --privileged=true \
  --restart always \
  -e "APP_NAME=经纬工作室" \
  -e "DOMAIN=git.local.laijw.com" \
  -e "USER_UID=1000" \
  -e "USER_GID=1000" \
  -e "GITEA__database__DB_TYPE=mysql" \
  -e "GITEA__database__HOST=192.168.110.165:3306" \
  -e "GITEA__database__NAME=gitea" \
  -e "GITEA__database__USER=gitea" \
  -e "GITEA__database__PASSWD=LFp6nM3NA6KttiRw" \
  -v ~/WWW/docker/gitea/data:/data \
  -v /etc/timezone:/etc/timezone:ro \
  -v /etc/localtime:/etc/localtime:ro \
  -p 8400:3000 \
  -p 8401:22 \
  gitea/gitea

docker 私服 registry 部署

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
docker pull registry
docker run -d -p 5000:5000 --restart always --name registry registry:latest

docker pull centos
docker tag centos localhost:5000/centos
docker push localhost:5000/centos

# 局域网访问
vim /etc/docker/daemon.json
>> "insecure-registries": ["docker.local.laijw.com"]

systemctl restart docker

docker 私服 harbor 部署

Docker之Harbor私服的搭建及使用

Run the Installer Script

Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能

本机 docker 配置文件

~/.docker/daemon.json

1
{"debug":true,"experimental":false,"registry-mirrors":["http://hub-mirror.c.163.com"],"insecure-registries":["docker.local.com"]}

服务器部署

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 准备centos,docker,docker-compose环境
sh ./install.sh

# 在harbor的安装目录,里执行命令

# 停止
docker-compose down -v
vim harbor.yml

# 开启
docker-compose up -d

# 推送镜像
docker login 192.168.0.47
admin
Harbor12345

docker tag centos:latest docker.laijw.com/library/centos:latest
docker push docker.laijw.com/library/centos:latest
docker pull docker.laijw.com/library/centos:latest

Linux 立即关机

1
shutdown -h now

docker onlyoffice

1
docker run -itd -p 8080:80 onlyoffice/documentserver

Docker searx

一个开源的聚合搜索引擎工具

1
2
docker pull searx/searx
docker run --rm -d -v ~/WWW/docker/searx:/etc/searx -p 8100:8080 -e BASE_URL=http://localhost:8100/ searx/searx

asciinema

一个终端录制工具,官网安装说明

1
2
brew install asciinema
asciinema rec demo.cast

Docker gradle

Dockerhub Github

Gradle is a build tool with a focus on build automation and support for multi-language development. If you are building, testing, publishing, and deploying software on any platform, Gradle offers a flexible model that can support the entire development lifecycle from compiling and packaging code to publishing web sites. Gradle has been designed to support build automation across multiple languages and platforms including Java, Scala, Android, C/C++, and Groovy, and is closely integrated with development tools and continuous integration servers including Eclipse, IntelliJ, and Jenkins.

1
2
docker pull gradle
docker run --rm -u gradle -v ~/WWW/docker/gradle:/home/gradle/project -w /home/gradle/project gradle assembleRelease

dnsmasq

hosts 泛解析

1
2
3
brew install dnsmasq
cd /usr/local/etc && touch resolv.dnsmasq.conf
mv dnsmasq.conf dnsmasq.example.conf && touch dnsmasq.conf

/usr/local/etc/resolv.dnsmasq.conf

常用的DNS地址

1
2
nameserver 119.29.29.29
nameserver 8.8.8.8

/usr/local/etc/dnsmasq.conf

1
2
3
4
5
6
7
resolv-file=/usr/local/etc/resolv.dnsmasq.conf
strict-order
no-hosts
port=8053
cache-size=32768
listen-address=127.0.0.1,192.168.110.165
address=/local.com/192.168.110.165

启动

1
2
3
4
5
sudo brew services start dnsmasq

# 开机自启动
sudo cp -fv /usr/local/opt/dnsmasq/*.plist /Library/LaunchDaemons
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

VMware Fusion 12 密钥

1
2
3
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8

Windows 10 企业版 LTSB 2016

1
DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ

Centos 初始化

1
2
3
yum install -y zsh
sh -c "$(curl -fsSL http://file.laijw.com/zsh.sh)"
sh -c "$(curl -fsSL http://file.laijw.com/install.sh)"

ssh 私钥登录

1
2
3
4
# 更改私钥权限
chmod 700 id_rsa

ssh -i ~/.ssh/id_rsa root@192.168.0.100

~/.ssh/config

1
2
3
4
5
Host            server
HostName        192.168.0.100
Port            22
User            root
IdentityFile    ~/.ssh/id_rsa
1
2
ssh server
scp index.html server:/www

Lorem

1
h2.cell*9>lorem

Gitea 上传大小限制

fatal: the remote end hung up unexpectedly

修改 nginx 配置文件

1
client_max_body_size 1024M;

CSS Background 简写

1
background: [background-color] [background-image] [background-repeat] [background-attachment] [background-position] / [ background-size] [background-origin] [background-clip];

示例

1
2
3
4
5
6
7
8
.example {
  background: aquamarine
              url(img.png)
              no-repeat
              scroll
              center center / 50%
              content-box content-box;
}

Mac下 Docker 动态添加端口

https://www.jianshu.com/p/6aefed2be1c7

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
docker stop lnmp
docker inspect lnmp | grep Id
cd ~/Library/Containers/com.docker.docker/Data/vms/0
screen tty
# screen is terminating
docker run -it --privileged --pid=host justincormack/nsenter1

cd /var/lib/docker/containers && ls
cd 3a374100cdd802bac5e94d3cf01741d78e6200d8bb4871a2d8106b9023d17375 && ls
vi config.v2.json # ExposedPorts
vi hostconfig.json # PortBindings
exit

docker restart

miniserve

For when you really just want to serve some files over HTTP right now!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
docker run -itd \
  --name miniserve \
  --restart always \
  -v ~/WWW/docker/nas:/nas \
  -p 8100:8080 \
  svenstaro/miniserve \
  --dirs-first \
  --enable-tar \
  --upload-files \
  --qrcode \
  --title '经纬云' \
  /nas

projector

Run JetBrains IDEs remotely with Docker

1
2
docker pull registry.jetbrains.team/p/prj/containers/projector-idea-c
docker run --rm -p 8887:8887 -itd --name projector registry.jetbrains.team/p/prj/containers/projector-idea-c

acme.sh

自动签发免费SSL证书

A pure Unix shell script implementing ACME client protocol

1
2
3
4
5
6
7
curl https://get.acme.sh | sh

export DP_Id="Your DP_Id"
export DP_Key="Your DP_Key"

cd ~/.acme.sh/
acme.sh --issue -d '*.local.laijw.com' --dns dns_dp

code-server

VS Code in the browser

1
2
3
4
5
6
7
mkdir -p ~/.config
docker run -itd --name code-server --restart always -p 8200:8080 \
  -v "$HOME/.config:/home/coder/.config" \
  -v "~/WWW/docker/code-server:/home/coder/project" \
  -u "$(id -u):$(id -g)" \
  -e "DOCKER_USER=$USER" \
  codercom/code-server:latest

Chrome network 正则过滤特定接口

1
/^(?!.*(\.json|.m3u8|.ts|amap|sentry|hot\-update|sockjs\-node))/

NPS docker

  • docker pull ffdfgdfg/nps
  • 下载conf文件夹并解压,或前往项目主页自行下载**(升级请忽略)**
  • 继续阅读文档修改配置文件**(升级请忽略)**
  • 启动:docker run -d --name nps --restart always --net=host -v ~/WWW/docker/nps/conf:/conf ffdfgdfg/nps

NPC docker

  • docker pull ffdfgdfg/npc
  • 下载conf文件夹并解压,或前往项目主页自行下载**(升级请忽略)**
  • 继续阅读文档按照不同的启动方式启动**(升级请忽略)**
  • 无配置文件:docker run -d --name npc --restart always --net=host ffdfgdfg/npc -server=<ip:port> -vkey=<web界面中显示的密钥> <以及一些其他参数>
  • 配置文件:docker run -d --name npc --restart always --net=host -v ~/WWW/docker/npc/conf:/conf ffdfgdfg/npc -config=/conf/npc.conf

zola

A fast static site generator in a single binary with everything built-in.

1
brew install zola

markdown 正则图片替换

1
2
3
4
5
!\[(.+)\]\((.+)\)
$2
$1
\{\{< image src="(.+)" caption="(.+)" >\}\} ![$2]($1)

docker mysql

1
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

docker kms

1
docker run -d --name py-kms --restart always -p 1688:1688 pykmsorg/py-kms

Windows 10

1
2
3
slmgr.vbs -ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
slmgr.vbs -skms 192.168.110.165
slmgr.vbs -ato

Office 2016

1
2
3
4
cd "C:\Program Files (x86)\Microsoft Office\Office16"
cscript ospp.vbs /inpkey:XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99
cscript ospp.vbs /sethst:192.168.110.165
cscript ospp.vbs /act

KMS GVLK 密钥

Windows Server 2016

Operating system editionKMS Client Setup Key
Windows Server 2016 DatacenterCB7KF-BWN84-R7R2Y-793K2-8XDDG
Windows Server 2016 StandardWC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
Windows Server 2016 EssentialsJCKRF-N37P4-C2D82-9YXRT-4M63B

Windows 10

Operating system editionKMS Client Setup Key
Windows 10 ProfessionalW269N-WFGWX-YVC9B-4J6C9-T83GX
Windows 10 Professional NMH37W-N47XK-V7XM9-C7227-GCQG9
Windows 10 EnterpriseNPPR9-FWDCX-D2C8J-H872K-2YT43
Windows 10 Enterprise NDPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
Windows 10 EducationNW6C2-QMPVW-D7KKK-3GKT6-VCFB2
Windows 10 Education N2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
Windows 10 Enterprise 2015 LTSBWNMTR-4C88C-JK8YV-HQ7T2-76DF9
Windows 10 Enterprise 2015 LTSB N2F77B-TNFGY-69QQF-B8YKP-D69TJ
Windows 10 Enterprise 2016 LTSBDCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ
Windows 10 Enterprise 2016 LTSB NQFFDN-GRT3P-VKWWX-X7T3R-8B639

Office 2016 的 GVLK

ProductGVLK
Office 专业增强版 2016XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99
Office Standard 2016JNRGM-WHDWX-FJJG3-K47QV-DRTFM
Project Professional 2016YG9NW-3K39V-2T3HJ-93F3Q-G83KT
Project Standard 2016GNFHQ-F6YQM-KQDGJ-327XX-KQBVC
Visio Professional 2016PD3PC-RHNGV-FXJ29-8JK7D-RJRJK
Visio Standard 20167WHWN-4T7MP-G96JF-G33KR-W8GF4
Access 2016GNH9Y-D2J4T-FJHGG-QRVH7-QPFDW
Excel 20169C2PK-NWTVB-JMPW8-BFT28-7FTBF
OneNote 2016DR92N-9HTF2-97XKM-XW2WJ-XW3J6
Outlook 2016R69KK-NTPKF-7M3Q4-QYBHW-6MT9B
PowerPoint 2016J7MQP-HNJ4Y-WJ7YM-PFYGF-BY6C6
Publisher 2016F47MM-N3XJP-TQXJ9-BP99D-8 837 K
Skype for Business 2016869NQ-FJ69K-466HW-QYCP2-DDBV6
Word 2016WXY84-JN2Q9-RBCCQ-3Q3J3-3PFJ6

Office 2019 的 GVLK

ProductGVLK
Office 专业增强版 2019NMMKJ-6RK4F-KMJVX-8D9MJ-6MWKP
Office 标准版 20196NWWJ-YQWMR-QKGCB-6TMB3-9D9HK
Project 专业版 2019B4NPR-3FKK7-T2MBV-FRQ4W-PKD2B
Project 标准版 2019C4F7P-NCP8C-6CQPT-MQHV9-JXD2M
Visio 专业版 20199BGNQ-K37YR-RQHF2-38RQ3-7VCBB
Visio 标准版 20197TQNQ-K3YQQ-3PFH7-CCPPM-X4VQ2
Access 20199N9PT-27V4Y-VJ2PD-YXFMF-YTFQT
Excel 2019TMJWT-YYNMB-3BKTF-644FC-RVXBD
Outlook 20197HD7K-N4PVK-BHBCQ-YWQRW-XW4VK
PowerPoint 2019RRNCX-C64HY-W2MM7-MCH9G-TJHMQ
Publisher 2019G2KWX-3NW6P-PY93R-JXK2T-C9Y9V
Skype for Business 2019NCJ33-JHBBY-HTK98-MYCV8-HMKHJ
Word 2019PBX3G-NWMT6-Q7XBW-PYJGG-WXD33

vue nginx 伪静态

1
2
3
location / {
  try_files $uri $uri/ /index.html;
}

screego

项目

  1. 项目地址:https://github.com/screego/server
  2. 文档地址:https://screego.net/#/

Screego提供了docker、多个平台的可执行二进制文件和源码的下载。

演示说明

Screego强制要求使用TLS,我这里演示使用nginx反向代理二进制文件,也可以直接在Screego内部使用,自行研究文档。

下载

从github的releases页面下载适合centoslinux_amd64.tar.gz包

1
wget https://github.com/screego/server/releases/download/v1.4.0/screego_1.4.0_linux_amd64.tar.gz

解压

解压之后包含"screego",“screego.config.example"这两个文件,“screego"是二进制可执行文件,“screego.config.example"是config文件配置范例。

编辑配置文件

“screego.config.example"是包含所有的参考案例。新建一个screego.config,注意不要打成screen。写入以下配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 服务器公网IP
SCREEGO_EXTERNAL_IP=X.X.X.X
# 设置密钥,任意随机字符就行
SCREEGO_SECRET=8w6EJ183hqFieprl
# 后续使用nginx反向代理,这里关闭内部的TLS,如果要使用内部的TLS,就true
SCREEGO_SERVER_TLS=false
# 监听端口,之后使用反向代理,这里设置监听在本地
SCREEGO_SERVER_ADDRESS=127.0.0.1:5050
# TURN监听端口
SCREEGO_TURN_ADDRESS=0.0.0.0:3478
# 使用反向代理这里必须启用
SCREEGO_TRUST_PROXY_HEADERS=true
# 参数值all表示所有请求都需要身份验证。如果不需要验证,任何人都可以自由建立房间,改为true
SCREEGO_AUTH_MODE=all
# 修改为使用的域名,记得是https
SCREEGO_CORS_ALLOWED_ORIGINS=https://screego.ExampleDomainName.cn
# 日志信息
SCREEGO_LOG_LEVEL=info
# 用于身份验证的文件
SCREEGO_USERS_FILE=user

建立用户

上面配置文件最后一行,我们使用user,touch新建一个user文件。在包含screego二进制文件里的文件夹里执行

1
2
touch user
./screego hash --name "username" --pass "password"

对应的 linuxprobe 和 password 可以换成自定义的值。执行上述命令应该有类似的输出:

1
username:$2a$12$9YgqeiL2MC2skKCj/ulpruOAlga5GdgXBECfubZCuapJGhGmQTuly

把输出内容写入到user文件里。

配置反向代理

直接使用的nginx,可以编辑对应的conf配置文件,如screego.conf文件,反向代理写入以下配置,注意替换域名:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
server {
  listen 80;
  server_name screego.ExampleDomainName.cn;

  location / {
    proxy_pass http://127.0.0.1:5050;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_redirect http:// $scheme://;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto http;
    proxy_set_header Host $http_host;
  }
}

如果使用宝塔,需要在站点新建反向代理到5050端口,在编辑反向代理文件,加入三条宝塔默认反向代理配置漏掉的三条:

1
2
3
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect http:// $scheme://;

TLS

Screego强制要求使用TLS,Nginx也得强制配置SSL。Nginx配置https证书都是常规操作,不在赘述。

使用

所有配置完成之后,使用命令启动:

1
./screego serve

高空抛物

华为好望云服务-华为云 https://www.huaweicloud.com/product/ivm.html

linux 文件文本查找

1
grep 'estate' . -r -o

Git reflog 记录清除

1
git reflog delete HEAD@{0}

Win 10 PowerShell

notepad $PROFILE

1
2
3
Import-Module posh-git
Import-Module oh-my-posh
Set-PoshPrompt Paradox

docker mysql

1
2
docker network create mysql_net
docker run -itd --name mysql --net mysql_net --restart always -e MYSQL_ROOT_PASSWORD=123456 -v /home/ubuntu/docker/mysql/conf:/etc/mysql/conf.d -v /home/ubuntu/docker/mysql/data:/var/lib/mysql -v /home/ubuntu/docker/mysql/logs:/logs -p 3306:3306 mysql:5.7

docker gitea

1
docker run -d --name gitea --net mysql_net --privileged=true --restart always -e "APP_NAME=经纬工作室" -e "DOMAIN=git.local.laijw.com" -e "USER_UID=1000" -e "USER_GID=1000" -e "GITEA__database__DB_TYPE=mysql" -e "GITEA__database__HOST=mysql:3306" -e "GITEA__database__NAME=gitea" -e "GITEA__database__USER=gitea" -e "GITEA__database__PASSWD=LFp6nM3NA6KttiRw" -v /home/ubuntu/docker/gitea/data:/data -p 8400:3000 -p 8401:22 gitea/gitea

docker adguardhome

1
docker run --name adguardhome --restart unless-stopped -v /home/ubuntu/docker/adguardhome/work:/opt/adguardhome/work -v /home/ubuntu/docker/adguardhome/conf:/opt/adguardhome/conf -p 53:53/tcp -p 53:53/udp -p 8160:80/tcp -p 8170:3000/tcp -d adguard/adguardhome

docker nginx-proxy-manager

1
docker run -itd --name nginx-proxy --net mysql_net --restart unless-stopped -p 80:80 -p 81:81 -p 443:443 -v /home/ubuntu/docker/nginx-proxy-manager/data:/data jc21/nginx-proxy-manager:latest

docker btpanel

1
docker run -d --name lnmp --restart unless-stopped -v /home/ubuntu/lnmp/wwwroot:/www/wwwroot -p 8888:8888 -p 443:443 -p 80:80 -p 888:888 -p 21:21 btpanel/btpanel:lnmp

windows netsh

1
2
3
netsh interface ipv4 show excludedportrange protocol=tcp
netsh int ipv4 set dynamicport tcp start=49152 num=16384
netsh int ipv4 add excludedportrange protocol=tcp startport=3306 numberofports=1

windows scoop

1
2
3
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-WebRequest get.scoop.sh | Invoke-Expression
scoop install lazydocker

windows 清除图标缓存

1
2
3
4
5
6
@echo off
taskkill /f /im explorer.exe
CD /d %userprofile%\AppData\Local
DEL IconCache.db /a
start explorer.exe
echo 执行完成