1、下載
通過(guò)官網(wǎng)下載docker安裝包,找arm環(huán)境的安裝包,如果是x86環(huán)境可以下載對(duì)應(yīng)的安裝包
Index of linux/static/stable/aarch64/
2、上傳到服務(wù)器上,通過(guò)rz命令
上傳成功后解壓?tar -xvf docker-24.0.6.tgz?
3. 復(fù)制文件到 /usr/bin
cp ./docker/* /usr/bin
4. 創(chuàng)建docker.service
vim ?/etc/systemd/system/docker.service
把這些復(fù)制到創(chuàng)建的文件中(注意需要修改insecure-registry=192.168.205.230,ip地址修改為當(dāng)前機(jī)器的地址)
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
?
[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 --selinux-enabled=false --insecure-registry=192.168.205.230
ExecReload=/bin/kill -s HUP $MAINPID
# 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
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# 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
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
?
[Install]
WantedBy=multi-user.target
5. 添加可執(zhí)行權(quán)限
chmod +x? /etc/systemd/system/docker.service
6. 常用命令
systemctl daemon-reload ?# 加載docker.service
systemctl start docker ? # 啟動(dòng)docker
systemctl status docker ?# 查詢docker當(dāng)前狀態(tài)
systemctl enable docker.service # 設(shè)置開(kāi)機(jī)自動(dòng)啟動(dòng)
7、使用docker ps -a 命令查看運(yùn)行的容器
8、關(guān)閉防火墻命令
systemctl stop firewalld
systemctl disable firewalld
##selinux 無(wú)需操作,k8s腳本自動(dòng)設(shè)置selinux
sed -i s#SELINUX=.*#SELINUX=disabled#g /etc/selinux/config
setenforce 0
9、普通用戶執(zhí)行docker ps -a 命令報(bào)錯(cuò)
?解決辦法:把我們當(dāng)前的用戶添加到docker組中就可以了,這樣他們就是一家人了。
第一步:sudo gpasswd -a username docker ?#將普通用戶username加入到docker組中,username這個(gè)字段也可以直接換成$USER。
第二步:newgrp docker ?#更新docker組
第三步:再執(zhí)行你報(bào)錯(cuò)的命令,此時(shí)就不會(huì)報(bào)錯(cuò)了。
啟動(dòng)報(bào)錯(cuò)分析原因
命令:需要把這個(gè)文件修改下名字,目錄/etc/docker? ? mv daemon.json daemon.conf
遷移docker
通過(guò)修改 Docker 配置文件的方式來(lái)修改 Docker 數(shù)據(jù)存儲(chǔ)路徑,以減少系統(tǒng)盤的占用空間。
1、停止 Docker 服務(wù)
systemctl stop docker
2、備份當(dāng)前的 Docker 數(shù)據(jù)存儲(chǔ)目錄?/var/lib/docker,或者直接把/var/lib/docker? 移動(dòng)到新建的目錄,一定要先停止docker在操作
mv /var/lib/docker /var/lib/docker.bak
3、創(chuàng)建新的 Docker 數(shù)據(jù)存儲(chǔ)目錄,例如?/data/docker
mkdir /data/docker
4、修改 Docker 配置文件
修改 Docker 配置文件?/etc/docker/daemon.json,如果該文件不存在,則創(chuàng)建它:
vim /etc/docker/daemon.json
將以下內(nèi)容復(fù)制粘貼到文件中,并將其中的 /data/docker 替換為實(shí)際的數(shù)據(jù)存儲(chǔ)路徑:
{
"data-root": "/data/docker"
}
5、啟動(dòng) Docker 服務(wù)
systemctl start docker
6、測(cè)試驗(yàn)證
確認(rèn) Docker 數(shù)據(jù)存儲(chǔ)路徑是否已經(jīng)修改成功:
docker info | grep 'Docker Root Dir'
7、可能出現(xiàn)啟動(dòng)不成功的問(wèn)題:按照這樣的方法試試
docker默認(rèn)存儲(chǔ)路徑在/var/lib/docker下
[root@node01 system]# docker info | grep -i dir
?Docker Root Dir: /var/lib/docker
修改docker的systemd的配置文件
方法一、
移動(dòng)文件位置
cp -a /var/lib/docker ?/home/docker
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --graph /home/docker
編輯 /etc/docker/daemon.json 文件,如果不存在得手動(dòng)創(chuàng)建,如果你寫(xiě)了國(guó)內(nèi)源的話,就在這下邊在加一行就行。
{
? ?"registry-mirrors":["http://docker.mirrors.ustc.edu.cn"],
? ?"exec-opts": ["native.cgroupdriver=systemd"],
? ?"data-root": "/home/docker"
}
最后重新加載配置,啟動(dòng),查看路徑是否修改成功
systemctl daemon-reload
systemctl restart docker
[root@node01 system]# docker info | grep -i dir
?Docker Root Dir: /home/docker
?
方法二、
創(chuàng)建軟連接
移動(dòng)文件位置
cp -a /var/lib/docker ?/home/docker
創(chuàng)建軟連接
sudo ln -fs /home/docker /var/lib/docker
重新加載配置&查看位置
復(fù)制?
systemctl daemon-reload
systemctl restart docker
[root@node01 system]# docker info | grep -i dir
?Docker Root Dir: /home/docker
?
docker 啟動(dòng)容器報(bào)錯(cuò)
1、/usr/bin/docker-current: Error response from daemon: shim error: docker-runc not installed on system
創(chuàng)建軟連接
ln -s /usr/libexec/docker/docker-runc-current /usr/bin/docker-runc-current
?
如果不行的話
但是嘗試之后依然發(fā)現(xiàn)沒(méi)有解決問(wèn)題,后來(lái)檢查了一遍所有的配置文件發(fā)現(xiàn)問(wèn)題:
[root@localhost docker.service.d]# pwd
/usr/lib/systemd/system/docker.service
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock ?--add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --storage-driver devicemapper --label provider=generic --bip=10.2.31.1/24 --mtu=1450
Environment=沒(méi)有指定docker-runc參數(shù)導(dǎo)致,docker無(wú)法找到相應(yīng)文件的位置,因此在進(jìn)行排錯(cuò)遷一定要確認(rèn)參數(shù)配置正確
2、如果報(bào)錯(cuò)exec: "docker-proxy": executable file not found in $PATH
創(chuàng)建軟連接,然后重啟docker文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-770359.html
ln -s? /usr/libexec/docker/docker-proxy-current /usr/bin/docker-proxy文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-770359.html
到了這里,關(guān)于Linux離線arm環(huán)境安裝部署docker詳細(xì)教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!