2.我在B站学云原生之Docker容器环境安装实践
全栈工程师修炼指南
2022年02月09日 13:36
收录于文集
共39篇

本章目录:

  • 0x01 Docker 安装实践

    • 1.Linux 系统安装

    • 2.Windows 系统安装

    • 3.Mac 系统安装

    • 4.镜像加速器配置


0x01 Docker 安装实践

1.Linux 系统安装

系统环境:Docker最低支持CentOS7且在64位平台上并且内核版本在3.10以上的Linux操作系统。 官方安装文档:https://docs.docker.com/install/linux/docker-ce/centos/# 镜像开源安装站点:https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/

  • Docker Engine改为Docker CE(社区版): 它包含了CLI客户端、后台进程/服务以及API。用户像以前以同样的方式获取。

  • Docker Data Center改为Docker EE(企业版): 在Docker三个定价层增加了额外的支付产品和支持。

官方一键安装脚本 补充时间: 一键安装Docker-ce以及Docker-compose:

代码块
Shell
自动换行
复制代码
##[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&#​34;命令查看当前系统内核是否支持 overlay2 ,另外需要非常注意devicemapper 存储驱动已经在 docker 18.09 版本中被废弃,所以在后续的安Docker装中无需安装devicemapper支持。

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

代码块
Shell
自动换行
复制代码
# (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/

代码块
Shell
自动换行
复制代码
# 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的安装补充时间:,可能随着时间推移最新版本与下述版本不同,请按照下面方式安装最新的docker-compose版本即可。

  • 方式1:安装 docker-compose: [需要安装大于或者等于1.6版本的 Docker ] https://docs.docker.com/compose/ -> 选择InstallCompose

代码块
Shell
自动换行
复制代码
#安装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

代码块
Shell
自动换行
复制代码
#在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 发行版,不需要任何进行任何额外的配置

2.Windows 系统安装

Windows 下安装 Docker:https://www.docker.com/products/docker-desktop 使用CPU虚拟化检测工具(LeoMoon CPU-V)检测环境:

window 7 - 现已经不适用(请使用Windows 10操作系统安装官方提供的Docker Desktop) Step 1.下载 docker Tool box 进行全安装FULL Installation Step 2.安装成功后会在桌面出现virtual VM,docker,Kitematic(Alpha)等等

  • Kitematic(Alpha):是一个Docker GUi工具.用户可能运行命令(docker run hello-world)在Docker客户端启动一个容器,在Kitematic中能观察结果. 用GitHub账号登陆.就可以看到自己创建的镜像,或是在GitHub上down下来的镜像. Oracle VM VirtualBox:虚拟机管理器,可以创建虚拟机;也可对当前正在运行的虚拟机进行管理.

Step 3.点击 Docker Quickstart Terminal进行下载boot2docker.iso 运气好不报错的话可以说明安装完成 Step 4.而我win7启动 Docker Quickstart Terminal报错,解决方法也是很简单

下载后放在C:\Users\WeiyiGeek.docker\machine\cache\boot2docker.iso即可

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

代码块
Shell
自动换行
复制代码
docker pull hello-world 

docker images 

docker run hello-world
复制成功

Step 5.安装后的docker是可以通过ssh连接的,boot2docker用户和密码

代码块
Shell
自动换行
复制代码
docker	tcuser	ssh
root	command:sudo -i (docker用户下执行)
复制成功

window 10 - 官方提供的 Docker Desktop for Windows 描述: 现在在等系统版本中可以进行下载安装下载地址-当前版本2.3.0.3,它可以进行使用的界面来操作查看docker中的容器,以此来简化了学习成本; Step 1.设置docker进行安装,加入到PATH之中 Step 2.安装成功,关闭窗口 Step 3.安装后利用powershell进行查看docker版本

> docker version

> docker run hello-world

Step 4.查看docker pull下来得镜像,并且运行

> docker images  #查看镜像

 > docker run -it hello-world #创建容器

Tips: 如果在VMware中安装的虚拟机需要开启VT-X,如果Desktop无法启动则尝试以下解决方法:

代码块
Shell
自动换行
复制代码
# 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主页

代码块
Shell
自动换行
复制代码
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
复制成功

www.weiyigeek.top

3.Mac 系统安装

描述: Mac安装请参考Docker官方文档,由于企业中服务器一般是采用Linux操作系统作为基础环境,Mac 多用于开发测试电脑,所以此处不再进行安装实践讲解。

4.镜像加速器配置

Q: Docker 镜像站(加速器配置)是什么,我需要使用吗? 描述: 使用 Docker 的时候,需要经常从官方获取镜像,但是由于显而易见的网络原因,拉取镜像的过程非常耗时,严重影响使用 Docker 的体验。因此为你的Docker服务配置Docker镜像站(加速)是非常必要的,通过智能路由和缓存机制,极大提升了国内网络访问 Docker Hub 的速度,如果您是在国内的网络环境使用 Docker,那么 Docker 镜像站一定能帮助到您。

方式1:使用DaoCloud加速器 简介:DaoCloud 加速器 是广受欢迎的 Docker 工具,解决了国内用户访问 Docker Hub 缓慢的问题。DaoCloud 加速器结合国内的 CDN 服务与协议层优化,成倍的提升了下载速度。 DaoCloud官网: https://www.daocloud.io/mirror#accelerator-doc

配置方式:

代码块
Shell
自动换行
复制代码
# 方式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来使用加速器:

代码块
Shell
自动换行
复制代码
#方法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
复制成功

补充一键配置:

代码块
Shell
自动换行
复制代码
# 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}
复制成功

至此本节完毕,敬请期待下一小节内容。

Docker容器技术入门实践系列历史已发布文章:

1.我在B站学云原生之Docker容器技术基础知识介绍​


欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】或者 个人公众号【WeiyiGeek】联系我。


更多文章来源于【WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少】 个人博客。

博客地址: https://weiyigeek.top 

无为而治

专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏点个赞、投个币、收个藏、关个注,转个发,这将对我的肯定,谢谢!。