以下命令默认以root用户运行
切换为root账户的方法
输入sudo -i
此时需输入root账户密码(不显示密码)
输入密码后按Enter
即可切换为root用户
一、安装docker前优化
1.更新软件源
apt-get update
apt-get update
– 更新软件源为最新版,本地软件不进行升级的apt-get upgrade
– 本地安装软件与本地软件列表对比,如本地安装版本低,会提示更新
2.升级packages
apt update -y
3.安装常用工具
apt-get install -y wget curl sudo vim git
4.添加SWAP虚拟内存
注意:VPS 的内存如果过小,建议设置一下 SWAP,一般为内存的 1-1.5 倍即可,可以让系统运行更流畅!
wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh
国内机可用
wget -O box.sh https://mirror.ghproxy.com/https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh
输入数字
18
按Enter
确认
18
然后输入你想要扩容的数值(一般为服务器物理内存的1-1.5倍)即可,以2G物理内存为例,可以选择2-3G,输入数字3
3
然后重启服务器
reboot
二、Docker、Docker-compose安装
2.1海外服务器/非大陆服务器
2.1.1Docker安装
- 安装
wget -qO- get.docker.com | bash
- 设置开机自动启动
systemctl enable docker
2.1.2Docker-compose安装
- 安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
- 查看版本
docker-compose --version
2.2国内服务器
2.2.1Docker安装
- 安装
curl -sSL https://get.daocloud.io/docker | sh
- 设置开机自动启动
systemctl enable docker
2.2.2Docker-compose安装
- 安装
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
2.3 离线安装
2.3.1 下载安装包
-
依次下载
containerd.io
、docker-ce-cli
和docker-ce
三个软件包 -
也可使用
wget
直接拉取,再传至相应服务器
以debian10、AMD64为例
wget https://download.docker.com/linux/debian/dists/buster/pool/stable/amd64/containerd.io_1.6.9-1_amd64.deb wget https://download.docker.com/linux/debian/dists/buster/pool/stable/amd64/docker-ce-cli_26.1.4-1~debian.10~buster_amd64.deb wget https://download.docker.com/linux/debian/dists/buster/pool/stable/amd64/docker-ce_26.1.4-1~debian.10~buster_amd64.deb
2.3.2 开始安装
dpkg -i {安装包}
#以debian10、AMD64为例
dpkg -i containerd.io_1.6.9-1_amd64.deb
dpkg -i docker-ce-cli_26.1.4-1~debian.10~buster_amd64.deb
dpkg -i docker-ce_26.1.4-1~debian.10~buster_amd64.deb
三、Docker、Docker-compose卸载
3.1 卸载docker
以下命令需要逐条执行
-
停止并删除所有docker容器
docker rm -f $(docker ps -qa)
-
删除所有docker镜像:
docker rmi $(docker images -qa)
-
停止 docker 服务:
systemctl stop docker
-
卸载相应软件
apt-get purge docker-ce apt-get purge docker-ce-cli apt-get purge docker-ce-rootless-extras apt-get purge docker-scan-plugin apt-get purge containerd.io
-
查看是否完全卸载
apt list --installed | grep docker apt list --installed | grep containerd.io
-
删除残留文件
rm -rf /var/lib/docker rm -rf /var/run/docker rm -rf /etc/docker rm -rf /run/docker.sock rm -rf /var/lib/containerd rm -rf /run/containerd rm -rf /opt/containerd
如果删除不掉,则先umount,然后再重新执行上面那步“删除docker相关存储目录”。
umount /var/lib/docker/devicemapper
3.2 卸载docker-compose
rm /usr/local/bin/docker-compose
四、Docker使用
4.1开启IPv6功能 (可选)
增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘
- 复制粘贴以下代码;
cat > /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true
}
- 按
Enter
键后输入
EOF
- 然后重启 Docker 服务:
systemctl restart docker
4.2查看docker内部ip
一般是172.17.0.1
输入
ip addr show docker0
4.3安装容器(container)
- 创建Docker容器数据放置文件夹
mkdir -p /root/data/docker_data/{docker_container_name}
以npm为例
mkdir -p /root/data/docker_data/npm
- 进入Docker容器数据放置文件夹
cd /root/data/docker_data/{docker_container_name}
以npm为例
cd /root/data/docker_data/npm
- 使用docker-compose方法安装,首先创建
docker-compose.yml
文件
vim docker-compose.yml
- 按
i
进入编辑/插入模式- 粘贴后,按
ESC
提出编辑/插入模式- 输入
:wq
保存修改并退出vim编辑器(不保存退出输入:q!
)
- 调用
docker-compose.yml
文件安装docker
docker-compose up -d
4.4更新容器(container)
如无必要不建议随意更新
- 进入Docker容器数据放置文件夹
cd /root/data/docker_data/{docker_container_name}
以npm为例
cd /root/data/docker_data/npm
- 停止目前容器(container)运行
此方法需要当前文件夹有docker-compose.yml文件
docker-compose down
如无docker-compose.yml文件,需要运行以下代码:
docker ps
出现以下代码
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a75530a059fa jc21/nginx-proxy-manager:latest "/init" 2 years ago Up 2 weeks 0.0.0.0:80-81->80-81/tcp, :::80-81->80-81/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp npm_app_1
查看容器(container) 对的CONTAINER ID
docker stop {docker_container_id} && docker rm {docker_container_id}
如图中所示,npm的CONTAINER ID为
a75530a059fa
,则命令行为docker stop a75530a059fa && docker rm a75530a059fa
即可停止npm的容器运行
- 数据备份
cp -r /root/data/docker_data/{docker_container_name} /root/data/docker_data/{docker_container_name}.archive
以npm为例
cp -r /root/data/docker_data/npm /root/data/docker_data/npm.archive
- 拉取容器(container)最新镜像
docker-compose.yml文件内image的标签要为latest
docker-compose pull
如不是latest,需修改标签为latest或者改为特定的版本
version: '3.3' services: npm: # latest标签 image: 'jc21/nginx-proxy-manager:latest' # 特定版本(以v1.13为例)标签 image: 'jc21/nginx-proxy-manager:1.13'
或者使用修改后的命令(docker-compose.yml文件内依然要改,否则不能安装相应版本)
# 拉取latest版本 docker pull jc21/nginx-proxy-manager:latest # 拉取特定版本(如v1.13) docker pull jc21/nginx-proxy-manager:1.13
- 更新容器(container)
此方法需要当前文件夹有docker-compose.yml文件
docker-compose up -d
- 删除未安装镜像(image)
(包含已安装镜像的旧版本、未安装的镜像)
以下操作不可恢复!!!谨慎使用!!!
docker image prune
输入y
确认
y
- 删除未安装的容器(container)
以下操作不可恢复!!!谨慎使用!!!
docker container prune
输入y
确认
y
4.5卸载容器(container)
- 进入Docker容器数据放置文件夹
cd /root/data/docker_data/{docker_container_name}
以npm为例
cd /root/data/docker_data/npm
- 停止目前容器(container)运行
此方法需要当前文件夹有docker-compose.yml文件
docker-compose down
如无docker-compose.yml文件,需要运行以下代码:
docker ps
出现以下代码
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a75530a059fa jc21/nginx-proxy-manager:latest "/init" 2 years ago Up 2 weeks 0.0.0.0:80-81->80-81/tcp, :::80-81->80-81/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp npm_app_1
查看容器(container) 对的CONTAINER ID
docker stop {docker_container_id} && docker rm {docker_container_id}
如图中所示,npm的CONTAINER ID为
a75530a059fa
,则命令行为docker stop a75530a059fa && docker rm a75530a059fa
即可停止npm的容器运行
截至目前,仅停止容器(container)运行,文件夹仍在,数据不会丢失。
再次运行 4.3安装容器 的步骤即可恢复原有数据
- 完全删除文件夹
以下操作不可恢复!!!谨慎使用!!!
以下操作不可恢复!!!谨慎使用!!!
以下操作不可恢复!!!谨慎使用!!!
会删除所有数据,不可恢复!!!
进入上一级文件夹(即/root/data/docker_data
)
cd ..
删除Docker容器数据文件夹
rm -rf /root/data/docker_data/{docker_container_name}
以npm为例
rm -rf /root/data/docker_data/npm
- 删除未安装镜像(image)
(包含已安装镜像的旧版本、未安装的镜像)
以下操作不可恢复!!!谨慎使用!!!
docker image prune
输入y
确认
y
- 删除未安装的容器(container)
以下操作不可恢复!!!谨慎使用!!!
docker container prune
输入y
确认
y
4.6 清理空间
以下操作不可恢复!!!谨慎使用!!!
以下操作不可恢复!!!谨慎使用!!!
以下操作不可恢复!!!谨慎使用!!!
docker system prune
默认会清除所有如下资源: 请谨慎使用!!!
已停止的容器(container)
未被任何容器所使用的卷(volume)
未被任何容器所关联的网络(network)
所有悬空镜像(image)
未被使用的镜像(image)不会被删除
docker system prune -a
默认会清除所有如下资源: 请谨慎使用!!!
已停止的容器(container)
未被任何容器所使用的卷(volume)
未被任何容器所关联的网络(network)
所有悬空镜像(image)
未被使用的镜像(image)
docker system prune -f
#忽略相关告警确认信息。
评论区