1. 程式人生 > >CentOS7安裝 Docker

CentOS7安裝 Docker

安裝腳本 網絡 訪問 可用 docker make iptable map .repo

環境:

CentOS 7

卸載舊版本

安裝新版本docker-ce前,需要先卸載舊版本docker或docker-engine,和關聯依賴。

sudo yum remove docker          docker-client          docker-client-latest          docker-common          docker-latest          docker-latest-logrotate          docker-logrotate          docker-selinux          docker-engine-selinux          docker-engine

方法一:使用版本庫安裝Docker CE

設置版本庫

  1. 安裝需要的包。yum-utils, device-mapper-presistent-data, 和lvm2

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  2. 使用下面命令設置一個穩定版本庫。

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. 可選:開啟edge和test版本庫。這些版本庫也包含在docker-ce.repo中,默認不可用,可以和穩定版本庫一起開啟:

    sudo yum-config-manager --enable docker-ce-edge
    sudo yum-config-manager --enable docker-ce-test

可以通過yum-config-manager命令用—disable和—enable來關閉和開啟這些版本庫。

sudo yum-config-manager --disable docker-ce-edge

通過版本庫安裝

1.查看可用版本並安裝

yum list docker-ce --showduplicates | sort -r

安裝指定版本

sudo yum install -y docker-ce-<VERSION STRING>

安裝最新版Docker CE

sudo yum install -y docker-ce

2.Docker CE的啟動、重啟、查看狀態和開機自動啟動

sudo systemctl start docker
sudo systemctl restart docker
sudo systemctl status docker
sudo systemctl enable docker

3.運行hello-word鏡像驗證docker是否正確安裝

sudo docker run hello-world

方法二:使用安裝包安裝

如果無法使用docker版本庫安裝(網絡有問題,我就遇到了),可以下載.rpm文件手動安裝。需要每次更新docker時都要下載一個新的文件。

  1. 訪問 這裏 下載指定docker版本的.rpm文件。比如:docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm

    https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

    https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm

  2. 使用下載的安裝包安裝docker。

    sudo yum install docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm
  3. Docker CE的啟動、重啟、查看狀態和開機自動啟動

    sudo systemctl start docker
    sudo systemctl restart docker
    sudo systemctl status docker
    sudo systemctl enable docker
  4. 運行hello-word鏡像驗證docker是否正確安裝

    sudo docker run hello-world

方法三(通過官方提供的自動安裝腳本安裝)

1.創建.sh文件,並寫入以下內容。vim docker.sh

    #!/bin/sh
    ###############################################################################
    #
    #VARS INIT
    #
    ###############################################################################

    ###############################################################################
    #
    #Confirm Env
    #
    ###############################################################################
    date
    echo "## Install Preconfirm"
    echo "## Uname"
    uname -r
    echo
    echo "## OS bit"
    getconf LONG_BIT
    echo

    ###############################################################################
    #
    #INSTALL yum-utils
    #
    ###############################################################################
    date
    echo "## Install begins : yum-utils"
    yum install -y yum-utils >/dev/null 2>&1
    if [ $? -ne 0 ]; then
      echo "Install failed..."
      exit 1
    fi
    echo "## Install ends   : yum-utils"
    echo

    ###############################################################################
    #
    #Setting yum-config-manager
    #
    ###############################################################################
    echo "## Setting begins : yum-config-manager"
    yum-config-manager        --add-repo        https://download.docker.com/linux/centos/docker-ce.repo >/dev/null 2>&1

    if [ $? -ne 0 ]; then
      echo "Install failed..."
      exit 1
    fi
    echo "## Setting ends   : yum-config-manager"
    echo

    ###############################################################################
    #
    #Update Package Cache
    #
    ###############################################################################
    echo "## Setting begins : Update package cache"
    yum makecache fast >/dev/null 2>&1
    if [ $? -ne 0 ]; then
      echo "Install failed..."
      exit 1
    fi
    echo "## Setting ends   : Update package cache"
    echo

    ###############################################################################
    #
    #INSTALL Docker-engine
    #
    ###############################################################################
    date
    echo "## Install begins : docker-ce"
    yum install -y docker-ce
    if [ $? -ne 0 ]; then
      echo "Install failed..."
      exit 1
    fi
    echo "## Install ends   : docker-ce"
    date
    echo

    ###############################################################################
    #
    #Stop Firewalld
    #
    ###############################################################################
    echo "## Setting begins : stop firewall"
    systemctl stop firewalld
    if [ $? -ne 0 ]; then
      echo "Install failed..."
      exit 1
    fi
    systemctl disable firewalld
    if [ $? -ne 0 ]; then
      echo "Install failed..."
      exit 1
    fi
    echo "## Setting ends   : stop firewall"
    echo

    ###############################################################################
    #
    #Clear Iptable rules
    #
    ###############################################################################
    echo "## Setting begins : clear iptable rules"
    iptables -F
    if [ $? -ne 0 ]; then
      echo "Install failed..."
      exit 1
    fi
    echo "## Setting ends   : clear iptable rules"
    echo

    ###############################################################################
    #
    #Enable docker
    #
    ###############################################################################
    echo "## Setting begins : systemctl enable docker"
    systemctl enable docker
    if [ $? -ne 0 ]; then
      echo "Install failed..."
      exit 1
    fi
    echo "## Setting ends   : systemctl enable docker"
    echo

    ###############################################################################
    #
    #start docker
    #
    ###############################################################################
    echo "## Setting begins : systemctl restart docker"
    systemctl restart docker
    if [ $? -ne 0 ]; then
      echo "Install failed..."
      exit 1
    fi
    echo "## Setting ends   : systemctl restart docker"
    echo

    ###############################################################################
    #
    #confirm docker version
    #
    ###############################################################################
    echo "## docker info"
    docker info
    echo

    echo "## docker version"
    docker version

2.啟動腳本進行安裝

    sudo chmod +x docker.sh
    sudo ./docker.sh

3.Docker CE的啟動、重啟、查看狀態和開機自動啟動

    sudo systemctl start docker
    sudo systemctl restart docker
    sudo systemctl status docker
    sudo systemctl enable docker

4.運行hello-word鏡像驗證docker是否正確安裝

sudo docker run hello-world 

卸載Docker CE

  1. 卸載docker

    sudo yum remove docker-ce
  2. 刪除所有鏡像,容器,卷,或者自定義配置文件

    sudo rm -rf /var/lib/docker

CentOS7安裝 Docker