#夏日生活打卡季#
原文連結:統信UOS伺服器作業系統遷移docker目錄
hello,大家好啊,今天給大家帶來一篇在統信UOS伺服器作業系統上遷移docker目錄的文章,在工作中我們會發現,當我們沒有将/var目錄單獨分區的時候,運作docker容器後,會将根目錄擠壓,是以我們可以通過遷移docker目錄的方式,釋放根路徑的磁盤空間,文章内容僅供參考,生産環境請根據實際情況調整,話不多說,讓我們開始吧。
1、檢視系統版本
[root@localhost ~]# cat /etc/os-version
[Version]
SystemName=UnionTech OS Server
SystemName[zh_CN]=統信伺服器作業系統
ProductType=Server
ProductType[zh_CN]=伺服器
EditionName=e
EditionName[zh_CN]=e
MajorVersion=20
MinorVersion=1050
OsBuild=12038.101
[root@localhost ~]#
2、安裝docker-ce
[root@localhost ~]# yum install docker-ce -y
Last metadata expiration check: 0:00:46 ago on 2023年06月20日 星期二 14時48分41秒.
Dependencies resolved.
===================================================================================
Package Arch Version Repo Size
===================================================================================
Installing:
docker-ce x86_64 20.10.7-3.uel20 repo 23 M
Installing dependencies:
container-selinux noarch 2:2.138.0-1.uel20 repo 36 k
containerd.io x86_64 1.5.5-1.uel20 repo 35 M
docker-ce-cli x86_64 20.10.7-3.uel20 repo 30 M
docker-ce-rootless-extras x86_64 20.10.7-3.uel20 repo 4.5 M
docker-scan-plugin x86_64 0.7.0-3.uel20 repo 3.7 M
libcgroup x86_64 0.42.2-3.uel20 repo 95 k
Transaction Summary
===================================================================================
Install 7 Packages
Total size: 96 M
Installed size: 400 M
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : docker-scan-plugin-0.7.0-3.uel20.x86_64 1/7
Installing : docker-ce-cli-20.10.7-3.uel20.x86_64 2/7
Running scriptlet: docker-ce-cli-20.10.7-3.uel20.x86_64 2/7
Running scriptlet: libcgroup-0.42.2-3.uel20.x86_64 3/7
Installing : libcgroup-0.42.2-3.uel20.x86_64 3/7
Running scriptlet: libcgroup-0.42.2-3.uel20.x86_64 3/7
Installing : docker-ce-rootless-extras-20.10.7-3.uel20.x86_64 4/7
Installing : containerd.io-1.5.5-1.uel20.x86_64 5/7
Running scriptlet: containerd.io-1.5.5-1.uel20.x86_64 5/7
Installing : container-selinux-2:2.138.0-1.uel20.noarch 6/7
Running scriptlet: container-selinux-2:2.138.0-1.uel20.noarch 6/7
Deprecated, use selabel_lookup
Installing : docker-ce-20.10.7-3.uel20.x86_64 7/7
Running scriptlet: docker-ce-20.10.7-3.uel20.x86_64 7/7
Verifying : container-selinux-2:2.138.0-1.uel20.noarch 1/7
Verifying : containerd.io-1.5.5-1.uel20.x86_64 2/7
Verifying : docker-ce-20.10.7-3.uel20.x86_64 3/7
Verifying : docker-ce-cli-20.10.7-3.uel20.x86_64 4/7
Verifying : docker-ce-rootless-extras-20.10.7-3.uel20.x86_64 5/7
Verifying : docker-scan-plugin-0.7.0-3.uel20.x86_64 6/7
Verifying : libcgroup-0.42.2-3.uel20.x86_64 7/7
Installed:
container-selinux-2:2.138.0-1.uel20.noarch
containerd.io-1.5.5-1.uel20.x86_64
docker-ce-20.10.7-3.uel20.x86_64
docker-ce-cli-20.10.7-3.uel20.x86_64
docker-ce-rootless-extras-20.10.7-3.uel20.x86_64
docker-scan-plugin-0.7.0-3.uel20.x86_64
libcgroup-0.42.2-3.uel20.x86_64
Complete!
3、啟動docker檢視狀态
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset>
Active: active (running) since Tue 2023-06-20 14:51:27 CST; 3s ago
Docs: https://docs.docker.com
Main PID: 36834 (dockerd)
Tasks: 10
Memory: 44.0M
CGroup: /system.slice/docker.service
└─36834 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containe>
6月 20 14:51:26 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:26.51>
6月 20 14:51:26 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:26.51>
6月 20 14:51:26 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:26.57>
6月 20 14:51:27 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:27.22>
6月 20 14:51:27 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:27.35>
6月 20 14:51:27 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:27.53>
6月 20 14:51:27 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:27.58>
6月 20 14:51:27 localhost.localdomain dockerd[36834]: time="2023-06-20T14:51:27.58>
[root@localhost ~]#
4、配置阿裡雲docker鏡像加速器
[root@localhost ~]# mkdir -p /etc/docker
[root@localhost ~]# tee /etc/docker/daemon.json <<-'EOF'
> {
> "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
> }
> EOF
{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]#
5、拉取nginx鏡像
[root@localhost ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete
a9edb18cadd1: Pull complete
589b7251471a: Pull complete
186b1aaa4aa6: Pull complete
b4df32aa5a72: Pull complete
a0bcbecc962e: Pull complete
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
[root@localhost ~]#
6、檢視nginx鏡像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 17 months ago 141MB
[root@localhost ~]#
7、啟動nginx
[root@localhost ~]# docker run -d --name nginx -p 80:80 nginx
dcb11489260306d89e54608e0de1cc7efcce6c444b7f9c85b4018c3bef08a783
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dcb114892603 nginx "/docker-entrypoint.…" 4 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
[root@localhost ~]#
8、通路nginx網站,可以看到網站通路成功
[root@localhost ~]# curl http://192.168.122.236
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.
For online documentation and support please refer to
nginx.org.
Commercial support is available at
nginx.com.
Thank you for using nginx.
[root@localhost ~]#
9、停止docker服務
[root@localhost ~]# systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:
docker.socket
[root@localhost ~]# systemctl stop docker.socket
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset>
Active: inactive (dead)
Docs: https://docs.docker.com
6月 20 14:59:15 localhost.localdomain dockerd[37327]: time="2023-06-20T14:59:15.26>
6月 20 14:59:15 localhost.localdomain systemd[1]: Started Docker Application Conta>
6月 20 14:59:15 localhost.localdomain dockerd[37327]: time="2023-06-20T14:59:15.30>
6月 20 15:03:52 localhost.localdomain systemd[1]: Stopping Docker Application Cont>
6月 20 15:03:52 localhost.localdomain dockerd[37327]: time="2023-06-20T15:03:52.29>
6月 20 15:03:52 localhost.localdomain dockerd[37327]: time="2023-06-20T15:03:52.52>
6月 20 15:03:52 localhost.localdomain dockerd[37327]: time="2023-06-20T15:03:52.91>
6月 20 15:03:52 localhost.localdomain dockerd[37327]: time="2023-06-20T15:03:52.91>
6月 20 15:03:52 localhost.localdomain systemd[1]: docker.service: Succeeded.
6月 20 15:03:52 localhost.localdomain systemd[1]: Stopped Docker Application Conta>
[root@localhost ~]#
10、同步/var/lib/docker/目錄到/home/docker
[root@localhost ~]# rsync -aP /var/lib/docker/ /home/docker/
runtimes/
swarm/
tmp/
trust/
volumes/
volumes/backingFsBlockDev
volumes/metadata.db
32,768 100% 41.29kB/s 0:00:00 (xfr#4432, to-chk=0/6359)
11、重新編輯docker服務配置檔案
[root@localhost ~]# cp /usr/lib/systemd/system/docker.service /usr/lib/systemd/system/docker.service.bak
[root@localhost ~]# vi /usr/lib/systemd/system/docker.service
[root@localhost ~]# cat /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
mentation=https://docs.docker.com
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --data-root /home/docker
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
# Both the old, and new location are accepted by systemd 229 and up, so using the old location
# to make them work for either version of systemd.
StartLimitBurst=3
# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
# this option work for either version of systemd.
StartLimitInterval=60s
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Comment TasksMax if your systemd version does not support it.
# Only systemd 226 and above support this option.
TasksMax=infinity
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
OOMScoreAdjust=-500
[Install]
WantedBy=multi-user.target
12、重新啟動docker服務
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset>
Active: active (running) since Tue 2023-06-20 15:10:20 CST; 5s ago
Docs: https://docs.docker.com
Main PID: 38374 (dockerd)
Tasks: 9
Memory: 44.1M
CGroup: /system.slice/docker.service
└─38374 /usr/bin/dockerd --data-root /home/docker
6月 20 15:10:19 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:19.38>
6月 20 15:10:19 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:19.63>
6月 20 15:10:19 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:19.67>
6月 20 15:10:19 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:19.94>
6月 20 15:10:20 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:20.05>
6月 20 15:10:20 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:20.19>
6月 20 15:10:20 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:20.21>
6月 20 15:10:20 localhost.localdomain dockerd[38374]: time="2023-06-20T15:10:20.21>
[root@localhost ~]#
13、檢視docker是否啟用新的資料目錄
[root@localhost ~]# docker info |grep "Docker Root Dir"
Docker Root Dir: /home/docker
[root@localhost ~]#
14、檢視并清除曆史的docker容器
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dcb114892603 nginx "/docker-entrypoint.…" 10 minutes ago Exited (0) 8 minutes ago nginx
[root@localhost ~]# docker rm nginx
nginx
15、重新啟動nginx容器
[root@localhost ~]# docker run -d --name nginx -p 80:80 nginx
e7f77c08ed3705dabe8a4c8a21ab71f754ee8c5792aef139a7f089e12235c5c2
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e7f77c08ed37 nginx "/docker-entrypoint.…" 6 seconds ago Up 5 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
[root@localhost ~]#
16、通路nginx網站,發現通路正常
[root@localhost ~]# curl http://192.168.122.236
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.
For online documentation and support please refer to
nginx.org.
Commercial support is available at
nginx.com.
Thank you for using nginx.
[root@localhost ~]#
17、檢視磁盤空間,docker資料在/home/docker下
[root@localhost ~]# df -h
檔案系統 容量 已用 可用 已用% 挂載點
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.7G 0 1.7G 0% /dev/shm
tmpfs 1.7G 9.1M 1.7G 1% /run
tmpfs 1.7G 0 1.7G 0% /sys/fs/cgroup
/dev/mapper/uos-root 70G 8.9G 62G 13% /
tmpfs 1.7G 28K 1.7G 1% /tmp
/dev/mapper/uos-home 125G 1.1G 124G 1% /home
/dev/sda1 1014M 191M 824M 19% /boot
tmpfs 343M 56K 343M 1% /run/user/0
/dev/loop0 522M 522M 0 100% /mnt
overlay 125G 1.1G 124G 1% /home/docker/overlay2/a1280bbc74922071fe57357fd7dc667e6821ca86ddce4edbb2b4619861cceae2/merged
[root@localhost ~]#
18、删除原有的/var/lib/docker目錄,檢視釋放的磁盤空間大小
[root@localhost ~]# rm -rf /var/lib/docker
[root@localhost ~]# df -h
檔案系統 容量 已用 可用 已用% 挂載點
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.7G 0 1.7G 0% /dev/shm
tmpfs 1.7G 9.1M 1.7G 1% /run
tmpfs 1.7G 0 1.7G 0% /sys/fs/cgroup
/dev/mapper/uos-root 70G 8.7G 62G 13% /
tmpfs 1.7G 28K 1.7G 1% /tmp
/dev/mapper/uos-home 125G 1.1G 124G 1% /home
/dev/sda1 1014M 191M 824M 19% /boot
tmpfs 343M 56K 343M 1% /run/user/0
/dev/loop0 522M 522M 0 100% /mnt
overlay 125G 1.1G 124G 1% /home/docker/overlay2/a1280bbc74922071fe57357fd7dc667e6821ca86ddce4edbb2b4619861cceae2/merged
[root@localhost ~]#