填坑上一篇文章:如何給無法上外網的機器上做 docker 鏡像遷移(記錄),上一章最后留了五個問題,先解決兩個
第一個問題:Linux
離線環境下如何安裝 docker
- 先下好安裝包,地址在這里:https://download.docker.com/linux/static/stable/x86_64/
- 不管是 ftp 也好,肉身上傳也好,反正用你的手段就把安裝包給搞到目標服務器
- 解壓并移動到
/usr/bin/
目錄下,如下:
tar -zxvf docker-20.10.9.tgz
mv docker/* /usr/bin/
rm -rf docker
- 在
/etc/systemd/system/
目錄下新增docker.service
文件,將docker
注冊為service
服務,方便設置開機自啟
[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=127.0.0.1
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
- 給
service
文件運行權限chmod +x /etc/systemd/system/docker.service
- 重新加載配置文件
systemctl daemon-reload
- 設置Docker為開機自啟
systemctl enable docker.service
- 啟動Docker容器
systemctl start docker
附:Linux
離線環境下如何安裝 docker-compose
- 同上,下載安裝包:https://github.com/docker/compose/releases,注意:
docker
與docker-compose
版本需兼容,否則啟動容器將失敗 - 同上,把安裝包給搞到目標服務器
/usr/local/bin/
中,并重命名為:docker-compose
- 給權限
chmod +x /usr/local/bin/docker-compose
- 查看是否安裝成功,如果不成功可以試試重啟
docker-compose -v
第二個問題:鏡像有了,如何使用 docker-compose
快速搭建本地環境
導入鏡像后正常使用就行,docker-compose
判斷本地鏡像有了之后會默認從本地鏡像展開容器,不會重新下載