1. 程式人生 > >Centos下Docker安裝指定版本

Centos下Docker安裝指定版本

參考官網:https://www.docker.com/products/docker#/linux

一般情況下,docker安裝可以使用官網推薦的自動安裝指令碼,

curl -sSL https://get.docker.com/ | sh

這樣可以安裝最新的docker-engine,如果因為某些特殊原因,比如機器上的selinux版本不符合docker-engine最新版本的依賴要求,可以使用如下方法手動安裝執行的docker版本。

以安裝docker-engine-1.12.1為例,以下是安裝和初步配置過程

# 如果國內無法連線docker的官方源,可以設定代理,此步驟可略過
export http_proxy=http://10.16.3.70:3128
export https_proxy=https://10.16.3.70:3128

# 清理殘餘的docker版本
yum -y remove docker docker-common container-selinux
yum -y remove docker-selinux

# 安裝工具yum-utils, 方便下一步設定yum源
yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://docs.docker.com/engine/installation/linux/repo_files/centos/docker.repo

# 檢視docker-engine的所有版本,找到期望版本的精確名字,如1.12.2-1.el7.centos
# yum list docker-engine --showduplicates
# 檢視某個docker-engine版本的依賴,如1.12.1依賴docker-engine-selinux, 版本>= 1.12.1-1.el7.centos
# yum deplist docker-engine-1.12.1-1.el7.centos

# 由於docker-engine會預設安裝docker-engine-selinux 13,而安裝docker-engine-selinux 13需要將本機的selinux升級,所以手動安裝docker-engine-selinux 12
yum  -y install docker-engine-selinux-1.12.2-1.el7.centos
# 安裝docker engine
yum -y install docker-engine-1.12.1-1.el7.centos

#建立soft link
systemctl enable docker

# config docker storage and http_proxy
#參考 https://docs.docker.com/engine/admin/systemd/

set +e
declare unitConfig=/etc/systemd/system/docker.service.d/
mkdir $unitConfig
cp ./start.conf $unitConfig
cp ./http_proxy.conf $unitConfig
set -e
systemctl daemon-reload
# start docker
service docker start

配置docker使用了linux的單元配置,包括./start.conf和./http_proxy.conf

./http_proxy.conf主要是為了在docker pull時的http代理,內容如下:

[Service]
Environment="HTTP_PROXY=http://10.16.3.70:3128/"

./start.conf是配置docker執行時容器的儲存地址,以防docker預設的目錄空間不夠。

[Service]
# 這句是為了unset ExecStart
ExecStart=
ExecStart=/usr/bin/dockerd --graph="/mnt/docker"