• Docker简易部署


    记录一下docker 简易部署的步骤

    环境准备

    Centos 7.9 Mini安装;

    cat /etc/redhat-release
    CentOS Linux release 7.7.1908 (Core)

    关闭防火墙和selinux

    systemctl stop firewalld
    sed -i 's/enforcing/disabled/' /etc/selinux/config
    setenforce 0

    安装依赖

    yum install -y yum-utils device-mapper-persistent-data lvm2

    添加源

    yum-config-manager --add-repo  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    Yum安装

    yum install -y docker-ce

    开启及检查

    systemctl start docker
    systemctl enable docker
    systemctl status docker
    
    docker version

    配置镜像加速(此步骤如担心安全问题,可不执行)

    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

    set_mirror.sh内容

      1 #!/usr/bin/env bash
      2 set -e
      3 
      4 if [ -z "$1" ]
      5 then
      6     echo 'Error: Registry-mirror url required.'
      7     exit 1
      8 fi
      9 
     10 MIRROR_URL=$1
     11 lsb_dist=''
     12 command_exists() {
     13     command -v "$@" > /dev/null 2>&1
     14 }
     15 if command_exists lsb_release; then
     16     lsb_dist="$(lsb_release -si)"
     17     lsb_version="$(lsb_release -rs)"
     18 fi
     19 if [ -z "$lsb_dist" ] && [ -r /etc/lsb-release ]; then
     20     lsb_dist="$(. /etc/lsb-release && echo "$DISTRIB_ID")"
     21     lsb_version="$(. /etc/lsb-release && echo "$DISTRIB_RELEASE")"
     22 fi
     23 if [ -z "$lsb_dist" ] && [ -r /etc/debian_version ]; then
     24     lsb_dist='debian'
     25 fi
     26 if [ -z "$lsb_dist" ] && [ -r /etc/fedora-release ]; then
     27     lsb_dist='fedora'
     28 fi
     29 if [ -z "$lsb_dist" ] && [ -r /etc/os-release ]; then
     30     lsb_dist="$(. /etc/os-release && echo "$ID")"
     31 fi
     32 if [ -z "$lsb_dist" ] && [ -r /etc/centos-release ]; then
     33     lsb_dist="$(cat /etc/*-release | head -n1 | cut -d " " -f1)"
     34 fi
     35 if [ -z "$lsb_dist" ] && [ -r /etc/redhat-release ]; then
     36     lsb_dist="$(cat /etc/*-release | head -n1 | cut -d " " -f1)"
     37 fi
     38 lsb_dist="$(echo $lsb_dist | cut -d " " -f1)"
     39 docker_version="$(docker -v | awk '{print $3}')"
     40 docker_major_version="$(echo $docker_version| cut -d "." -f1)"
     41 docker_minor_version="$(echo $docker_version| cut -d "." -f2)"
     42 lsb_dist="$(echo "$lsb_dist" | tr '[:upper:]' '[:lower:]')"
     43 
     44 set_daemon_json_file(){
     45     DOCKER_DAEMON_JSON_FILE="/etc/docker/daemon.json"
     46     if sudo test -f ${DOCKER_DAEMON_JSON_FILE}
     47     then
     48         sudo cp  ${DOCKER_DAEMON_JSON_FILE} "${DOCKER_DAEMON_JSON_FILE}.bak"
     49         if sudo grep -q registry-mirrors "${DOCKER_DAEMON_JSON_FILE}.bak";then
     50             sudo cat "${DOCKER_DAEMON_JSON_FILE}.bak" | sed -n "1h;1"'!'"H;${g;s|"registry-mirrors":s*[[^]]*]|"registry-mirrors": ["${MIRROR_URL}"]|g;p;}" | sudo tee ${DOCKER_DAEMON_JSON_FILE}
     51         else
     52             sudo cat "${DOCKER_DAEMON_JSON_FILE}.bak" | sed -n "s|{|{"registry-mirrors": ["${MIRROR_URL}"],|g;p;" | sudo tee ${DOCKER_DAEMON_JSON_FILE}
     53         fi
     54     else
     55         sudo mkdir -p "/etc/docker"
     56         sudo echo "{"registry-mirrors": ["${MIRROR_URL}"]}" | sudo tee ${DOCKER_DAEMON_JSON_FILE}
     57     fi
     58 }
     59 
     60 
     61 can_set_json(){
     62     if [ "$docker_major_version" -eq 1 ] && [ "$docker_minor_version" -lt 12 ] 
     63     then
     64         echo "docker version < 1.12"
     65         return 0
     66     else
     67         echo "docker version >= 1.12"
     68         return 1
     69     fi
     70 }
     71 
     72 set_mirror(){
     73     if [ "$docker_major_version" -eq 1 ] && [ "$docker_minor_version" -lt 9 ]
     74         then
     75             echo "please upgrade your docker to v1.9 or later"
     76             exit 1
     77     fi
     78 
     79     case "$lsb_dist" in
     80         centos)
     81         if grep "CentOS release 6" /etc/redhat-release > /dev/null
     82         then
     83             DOCKER_SERVICE_FILE="/etc/sysconfig/docker"
     84             sudo cp ${DOCKER_SERVICE_FILE} "${DOCKER_SERVICE_FILE}.bak"
     85             sudo sed -i "s|other_args="|other_args="--registry-mirror='${MIRROR_URL}'|g" ${DOCKER_SERVICE_FILE}
     86             sudo sed -i "s|OPTIONS='|OPTIONS='--registry-mirror='${MIRROR_URL}'|g" ${DOCKER_SERVICE_FILE}
     87             echo "Success."
     88             echo "You need to restart docker to take effect: sudo service docker restart"
     89             exit 0
     90         fi
     91         if grep "CentOS Linux release 7" /etc/redhat-release > /dev/null
     92         then
     93             if can_set_json; then
     94                 DOCKER_SERVICE_FILE="/lib/systemd/system/docker.service"
     95                 sudo cp ${DOCKER_SERVICE_FILE} "${DOCKER_SERVICE_FILE}.bak"
     96                 sudo sed -i "s|(ExecStart=/usr/bin/docker[^ ]* daemon)|1 --registry-mirror="${MIRROR_URL}"|g" ${DOCKER_SERVICE_FILE}
     97                 sudo systemctl daemon-reload
     98             else
     99                 set_daemon_json_file
    100             fi
    101             echo "Success."
    102             echo "You need to restart docker to take effect: sudo systemctl restart docker "
    103             exit 0
    104         else
    105             echo "Error: Set mirror failed, please set registry-mirror manually please."
    106             exit 1
    107         fi
    108     ;;
    109         fedora)
    110         if grep "Fedora release" /etc/fedora-release > /dev/null
    111         then
    112             if can_set_json; then
    113             DOCKER_SERVICE_FILE="/lib/systemd/system/docker.service"
    114             sudo cp ${DOCKER_SERVICE_FILE} "${DOCKER_SERVICE_FILE}.bak"
    115             sudo sed -i "s|(ExecStart=/usr/bin/docker[^ ]* daemon)|1 --registry-mirror="${MIRROR_URL}"|g" ${DOCKER_SERVICE_FILE}
    116             sudo systemctl daemon-reload
    117             else
    118                 set_daemon_json_file
    119             fi
    120             echo "Success."
    121             echo "You need to restart docker to take effect: sudo systemctl restart docker"
    122             exit 0
    123         else
    124             echo "Error: Set mirror failed, please set registry-mirror manually please."
    125             exit 1
    126         fi
    127     ;;
    128         ubuntu)
    129         v1=`echo ${lsb_version} | cut -d "." -f1`
    130         if [ "$v1" -ge 16 ]; then
    131             if can_set_json; then
    132                 DOCKER_SERVICE_FILE="/lib/systemd/system/docker.service"
    133                 sudo cp ${DOCKER_SERVICE_FILE} "${DOCKER_SERVICE_FILE}.bak"
    134                 sudo sed -i "s|(ExecStart=/usr/bin/docker[^ ]* daemon -H fd://$)|1 --registry-mirror="${MIRROR_URL}"|g" ${DOCKER_SERVICE_FILE}
    135                 sudo systemctl daemon-reload
    136             else
    137                 set_daemon_json_file
    138             fi
    139             echo "Success."
    140             echo "You need to restart docker to take effect: sudo systemctl restart docker.service"
    141             exit 0
    142         else
    143             if can_set_json; then
    144                 DOCKER_SERVICE_FILE="/etc/default/docker"
    145                 sudo cp ${DOCKER_SERVICE_FILE} "${DOCKER_SERVICE_FILE}.bak"
    146                 if grep "registry-mirror" ${DOCKER_SERVICE_FILE} > /dev/null
    147                 then
    148                     sudo sed -i -u -E "s#--registry-mirror='?((http|https)://)?[a-zA-Z0-9.]+'?#--registry-mirror='${MIRROR_URL}'#g" ${DOCKER_SERVICE_FILE}
    149                 else
    150                     echo 'DOCKER_OPTS="$DOCKER_OPTS --registry-mirror='${MIRROR_URL}'"' >> ${DOCKER_SERVICE_FILE}
    151                     echo ${MIRROR_URL}
    152                 fi
    153             else
    154                 set_daemon_json_file
    155             fi
    156         fi
    157         echo "Success."
    158         echo "You need to restart docker to take effect: sudo service docker restart"
    159         exit 0
    160     ;;
    161         debian)
    162         if can_set_json; then
    163             DOCKER_SERVICE_FILE="/etc/default/docker"
    164             sudo cp ${DOCKER_SERVICE_FILE} "${DOCKER_SERVICE_FILE}.bak"
    165             if grep "registry-mirror" ${DOCKER_SERVICE_FILE} > /dev/null
    166             then
    167                 sudo sed -i -u -E "s#--registry-mirror='?((http|https)://)?[a-zA-Z0-9.]+'?#--registry-mirror='${MIRROR_URL}'#g" ${DOCKER_SERVICE_FILE}
    168             else
    169                 echo 'DOCKER_OPTS="$DOCKER_OPTS --registry-mirror='${MIRROR_URL}'"' >> ${DOCKER_SERVICE_FILE}
    170                 echo ${MIRROR_URL}
    171             fi
    172         else
    173             set_daemon_json_file
    174         fi
    175         echo "Success."
    176         echo "You need to restart docker to take effect: sudo service docker restart"
    177         exit 0
    178     ;;
    179         arch)
    180         if grep "Arch Linux" /etc/os-release > /dev/null
    181         then
    182             if can_set_json; then
    183                 DOCKER_SERVICE_FILE="/lib/systemd/system/docker.service"
    184                 sudo cp ${DOCKER_SERVICE_FILE} "${DOCKER_SERVICE_FILE}.bak"
    185                 sudo sed -i "s|(ExecStart=/usr/bin/docker[^ ]* daemon -H fd://)|1 --registry-mirror="${MIRROR_URL}"|g" ${DOCKER_SERVICE_FILE}
    186                 sudo systemctl daemon-reload
    187             else
    188                 set_daemon_json_file
    189             fi
    190             echo "Success."
    191             echo "You need to restart docker to take effect: sudo systemctl restart docker"
    192             exit 0
    193         else
    194             echo "Error: Set mirror failed, please set registry-mirror manually please."
    195             exit 1
    196         fi
    197     ;;
    198         suse)
    199         if grep "openSUSE Leap" /etc/os-release > /dev/null
    200         then
    201             if can_set_json; then
    202             DOCKER_SERVICE_FILE="/usr/lib/systemd/system/docker.service"
    203             sudo cp ${DOCKER_SERVICE_FILE} "${DOCKER_SERVICE_FILE}.bak"
    204             sudo sed -i "s|(^ExecStart=/usr/bin/docker daemon -H fd://)|1 --registry-mirror="${MIRROR_URL}"|g" ${DOCKER_SERVICE_FILE}
    205             sudo systemctl daemon-reload
    206             else
    207                 set_daemon_json_file
    208             fi
    209             echo "Success."
    210             echo "You need to restart docker to take effect: sudo systemctl restart docker"
    211             exit 0
    212         else
    213             echo "Error: Set mirror failed, please set registry-mirror manually please."
    214             exit 1
    215         fi
    216     esac
    217     echo "Error: Unsupported OS, please set registry-mirror manually."
    218     exit 1
    219 }
    220 set_mirror

    重启Docker,生效镜像加速

    systemctl restart docker

    Docker 安装完毕!

  • 相关阅读:
    Hadoop无法访问web50070端口
    Hadoop问题汇总
    Hadoop问题汇总
    Linux网络连接模式以及修改静态IP
    Linux网络连接模式以及修改静态IP
    Linux基本命令
    SQLite数据操作
    SQLite初试
    编码与解码
    属性列表
  • 原文地址:https://www.cnblogs.com/micronm/p/15292179.html
Copyright © 2020-2023  润新知