說明
使用虛擬機真實模仿離線環境
虛擬機系統爲 CentOS 7.5.1804(kernel-3.10.0-862.el7.x86_64)
本文使用 tgz 文件 離線安裝 Docker
正文
- 下載 Docker 二進制文件(離線安裝包):下載地址
本文使用 /x86_64/docker-17.12.1-ce.tgz,注意對應操作系統類型。 - 通過 FTP工具將 docker-17.12.1-ce.tgz 上傳到服務器上
- 解壓安裝包
tar zxf docker-17.12.1-ce.tgz
- 將docker 相關命令拷貝到 /usr/bin,方便直接運行命令
sudo cp docker/* /usr/bin/
- 啓動Docker守護程序
sudo dockerd &
- 驗證是否安裝成功
- 事先準備好 hello-world 鏡像 tar 文件並上傳到服務器上(附上下載鏈接)
- 通過
docker load -i {tar文件名}
加載鏡像 - 執行
docker run hello-world
拉起鏡像,看鏡像是否成功運行。成功運行即離線安裝成功。
如果報錯:Error … process caused “process_linux.go:430: container init caused “write /proc/self/attr/keycreate: permission denied””: unknown. 則需要修改/etc/selinux/config
文件,將其中的SELINUX屬性改爲disabled(SELINUX=disabled
)。重啓服務器(reboot
)再嘗試。
如何停止 docker 服務?
- 根據進程號(pid)停止docker服務
執行find / -name docker.pid
查找docker.pid 文件位置
執行cat {docker.pid路徑}
打印docker.pid
執行kill {pid}
殺死docker進程(若無法正常終止進程可加上-9
參數強制終止,kill -9 {pid})
- 通過systemctl stop docker 停止服務
需要先將docker註冊成系統服務,參見下文。
如何將docker註冊成系統服務?
在 /usr/lib/systemd/system/ 目錄下創建docker.service 文件
vi /usr/lib/systemd/system/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
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
- 啓動 / 停止 docker 服務
systemctl start/stop docker
- 開機自啓 / 取消開機自啓 docker 服務
systemctl enable/disable docker
使用 docker info
命令測試 docker是否啓動,正常打印docker信息即正常啓動。
題外話:
-
如何不使用 docker pull 命令,下載鏡像tar 文件?
Downloading Docker Images from Docker Hub without using Docker
How do I download Docker images without using the pull command?
Fetch docker images without docker command. e.g. with wget
方案一:通過腳本下載鏡像(需要 curl 、jq、go 依賴,通過yum install curl jq go -y
安裝):https://github.com/moby/moby/blob/master/contrib/download-frozen-image-v2.sh -
遷移一臺服務器的鏡像到另一臺服務器?
How to copy docker images from one host to another?
How to copy Docker images from one host to another without using a repository
reference:
Docker官網 二進制安裝包安裝文檔
Docker tgz包下載地址
Docker Hello-world 鏡像
yum安裝軟件時出現No package ** available的問題
end