2.云原生之Docker容器环境安装实践
阅读原文时间:2023年07月09日阅读:1

转载自:https://www.bilibili.com/read/cv15181036/?from=readlist

官方一键安装脚本

补充时间:[2020年4月22日 11:00:59]

一键安装Docker-ce以及Docker-compose:

##[docker]
#国外
curl -fsSL https://get.docker.com | bash -s docker
#国内
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
curl -fsSL https://get.docker.com -o get-docker.sh && chmod +x get-docker.sh && ./get-docker.sh
#测试安装结果
docker-info

##[docker-compose]
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
#测试安装结果
docker-compose version

温馨提示: 目前最新的Docker版本为 (20.10.12)默认使用overlay2 作为存储驱动,对于已支持该驱动的 Linux 发行版,不需要任何进行任何额外的配置,可使用lsmod | grep "overlay"命令查看当前系统内核是否支持 overlay2 ,另外需要非常注意devicemapper 存储驱动已经在 docker 18.09 版本中被废弃,所以在后续的安Docker装中无需安装devicemapper支持。

CentOS 中利用 yum 安装 Docker / Docker-compose

# (1) 卸载机器上docker或者docker-engine旧版本以及相关的依赖项
yum remove -y  docker \
  docker-client \
  docker-client-latest \
  docker-common \
  docker-latest \
  docker-latest-logrotate \
  docker-logrotate \
  docker-engine

# (2) 在新主机上首次安装 Docker Engine 之前,您需要 设置 Docker 稳定的存储库。
sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
# 或者手动设置官方源
# sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
# [dockerrepo]
# name=Docker Repository
# baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
# enabled=1
# gpgcheck=1
# gpgkey=https://yum.dockerproject.org/gpg
# EOF

# 安装最新版本的 Docker Engine  和 containerd
# Docker Community Edition (CE) 对于希望开始使用Docker并尝试基于容器的应用程序的开发人员和小型团队来说非常理想。
# 如果提示接受 GPG 密钥,请验证指纹是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,接受它。
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose

# 安装特定版本的 Docker Engine,请在列出可用版本中选择并安装,
# 即 包名( docker-ce) 加上版本字符串(第二列) 从第一个冒号 ( :),直到第一个连字符,由 一个连字符 ( -)。 例如 docker-ce-18.09.1.
yum list docker-ce --showduplicates | sort -r
  # docker-ce.x86_64            3:18.09.5-3.el7                    docker-ce-stable
  # docker-ce.x86_64            3:18.09.5-3.el7                    @docker-ce-stable  #当前使用版本
  # docker-ce.x86_64            3:19.03.15-3.el7                    docker-ce-stable
  # docker-ce.x86_64            3:19.03.14-3.el7                    docker-ce-stable
sudo yum install -y docker-ce-19.03.15  docker-ce-cli-19.03.15 containerd.io docker-compose

# 更新docker-ceDocker CE有三种更新通道是稳定通道、测试通道和夜间通道
yum -y upgrade docker-ce

# Docker 是一个 C/S 架构的服务,安装好 docker 之后需要启动 docker 软件后才能使用 docker 命令;
systemctl start/status docker  # 启动docker-ce

# 查看docker启动状态
docker version
Client:
 Version:           18.09.5
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        e8ff056
 Built:             Thu Apr 11 04:43:34 2019
 OS/Arch:           linux/amd64

# 移出docker-ce
$ sudo yum remove docker-ce
#主机上的映像、容器、卷或自定义配置文件不会自动删除。删除所有图像、容器和卷:
$ sudo rm -rf /var/lib/docker

# 通过运行以下命令拉取并运行hello-world镜像验证 Docker Engine 是否已正确安装
docker pull hello-world
docker images
docker run hello-world

Ubuntu 中利用 apt 安装 Docker / Docker-compose

Ubuntu安装Docker参考: https://docs.docker.com/install/linux/docker-ce/ubuntu/

# 1.卸载旧版本
  sudo apt-get remove docker docker-engine docker.io containerd runc

  # 2.更新apt包索引并安装包以允许apt在HTTPS上使用存储库
  sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

  # 3.添加Docker官方GPG密钥 # -fsSL
  sudo curl  https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

  # 4.通过搜索指纹的最后8个字符进行密钥验证
  sudo apt-key fingerprint 0EBFCD88

  # 5.设置稳定存储库
  sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

  # 6.Install Docker Engine 默认最新版本
  sudo apt-get update && sudo apt-get install -y docker-ce=5:20.10.7~3-0~ubuntu-focal docker-ce-cli=5:20.10.7~3-0~ubuntu-focal containerd.io docker-compose
  # - 强制IPv4
  # sudo apt-get -o Acquire::ForceIPv4=true  install -y docker-ce=5:19.03.15~3-0~ubuntu-focal docker-ce-cli=5:19.03.15~3-0~ubuntu-focal containerd.io docker-compose

  # 7.安装特定版本的Docker引擎,请在repo中列出可用的版本
  apt-cache madison docker-ce
  # docker-ce | 5:20.10.6~3-0~ubuntu-focal| https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
  # docker-ce | 5:19.03.15~3-0~ubuntu-focal | https://download.docker.com/linux/ubuntu  xenial/stable amd64 Packages
  # 使用第二列中的版本字符串安装特定的版本,例如:5:18.09.1~3-0~ubuntu-xenial。
  # $sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io

  #8.将当前用户加入docker用户组然后重新登陆当前用户使得低权限用户
  sudo gpasswd -a ${USER} docker
  # sudo gpasswd -a weiyigeek docker

  #9.加速器建立
  mkdir -vp /etc/docker/
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "data-root":"/var/lib/docker",
  "registry-mirrors": ["https://xlx9erfu.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "storage-driver": "overlay2",
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "100m",
    "max-file": "10"
  },
  "live-restore": true,
  "dns": ["8.8.8.8","223.6.6.6"],
  "insecure-registries": ["harbor.weiyigeek.top"]
}
EOF

  # 9.自启与启动
  sudo systemctl daemon-reload
  sudo systemctl enable docker
  sudo systemctl restart docker

docker-compose的安装补充时间:[2020年1月22日 10:54:55],可能随着时间推移最新版本与下述版本不同,请按照下面方式安装最新的docker-compose版本即可。

方式1:安装 docker-compose: [需要安装大于或者等于1.6版本的 Docker ]

https://docs.docker.com/compose/ -> 选择InstallCompose

#安装docker-compose
#切换为root权限下载并安装docker-compose ( current stable release (v1.25.0)  )
$ curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose

方式2:安装Docker-Compose

#在centos7中使用python-pip安装docker-compose
$yum install -y python3
$pip3 install pip --upgrade
[root@vm-1575613390 ~]# pip --version
pip 19.3.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)

$pip3 install docker-compose

目前最新版本的 docker 默认优先采用 overlay2 的存储驱动,对于已支持该驱动的 Linux 发行版,不需要任何进行任何额外的配置

解决上述问题后, 执行如下命令验证安装:

docker pull hello-world
docker images
docker run hello-world

# 1.查看系统中的VM,如果没有开启过就是false状态。
Get-VM
Get-VMProcessor -VMName Server2019 | fl

# 2.显示未True就是已经开启嵌套虚拟化了,但是这个功能只针对Hyper-V虚拟机,所以,为什么要装虚拟机到Hyper-V中
Set-VMProcessor -ExposeVirtualizationExtensions $true -VMName Server2019

例如: 利用Docker Desktop部署我的blog主页

PS C:\> mkdir github; cd .\github\
PS C:\github> Invoke-WebRequest -Uri https://github.com/WeiyiGeek/WeiyiGeek/archive/refs/heads/master.zip -OutFile blog.zip
PS C:\github> Expand-Archive -Path .\blog.zip -DestinationPath .
PS C:\github> mv .\WeiyiGeek-master\ blog

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

# 方式2
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["http://f1361db2.m.daocloud.io"]
}
EOF

方式2:使用阿里云容器镜像服务加速器

推荐安装1.10.0以上版本的Docker客户端,您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:

#方法1.常规加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xlx9erfu.mirror.aliyuncs.com"]
}
EOF

#方法2:对于 1.12 以前的版本, dockerd 换成 docker daemon
#注:编辑docker.service文件
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --registry-mirrors=https://xlx9erfu.mirror.aliyuncs.com

#方法3:Docker-CE17.12版本以及之后(CentOS7.0)
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --registry-mirror=https://xlx9erfu.mirror.aliyuncs.com

#通用启动
sudo systemctl daemon-reload   #重载守护
sudo systemctl restart docker

#检查加速器是否生效
sudo ps -ef | grep dockerd
root 5346 1 0 19:03 ? 00:00:00 /usr/bin/dockerd --registry-mirror=https://jxus37ad.mirror.aliyuncs.com

补充一键配置:

# Docker中国 mirror
# export REGISTRY_MIRROR="https://registry.docker-cn.com"
# 腾讯云 docker hub mirror
# export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"
# 华为云镜像
# export REGISTRY_MIRROR="https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com"
# DaoCloud 镜像
# export REGISTRY_MIRROR="http://f1361db2.m.daocloud.io"
# 阿里云 docker hub mirror
# export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
export REGISTRY_MIRROR=https://xlx9erfu.mirror.aliyuncs.com
curl -sSL https://kuboard.cn/install-script/set_mirror.sh | sh -s ${REGISTRY_MIRROR}