前言

最近公司有项目需要运行在腾讯TSF平台的需求,腾讯应用部署有两种方式:一种是虚拟机部署,而另一种就是容器部署。而容器部署就涉及了docker相关领域,在此之前Docker是我的知识盲区,掌握docker是迈向高级Java开发必不可少的技能点,趁空闲时间就抓紧学习Docker。

在这里插入图片描述

一、安装Docker

安装Docker的环境要求

下面是官方文档上对Centos系统上安装Docker的环境要求:

  • 查看Linux系统版本号
## 查看系统版本
[root@VM-32-10-centos ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"
## 查看Linux kernel内核版本,Docker要求内核版本必须在3或4以上
[root@VM-32-10-centos ~]# uname -r
4.18.0-305.3.1.el8.x86_64
  • 查看centos是否启用centos-extras
[root@VM-32-17-centos ~]# vim /etc/yum.repos.d/

在这里插入图片描述

# 选中上图标红的镜像输入i,然后再敲回车即可查看该镜像

在这里插入图片描述

卸载旧的Docker版本

[root@VM-32-10-centos ~]#  sudo yum remove docker \
>                   docker-client \
>                   docker-client-latest \
>                   docker-common \
>                   docker-latest \
>                   docker-latest-logrotate \
>                   docker-logrotate \
>                   docker-engine
No match for argument: docker
No match for argument: docker-client
No match for argument: docker-client-latest
No match for argument: docker-common
No match for argument: docker-latest
No match for argument: docker-latest-logrotate
No match for argument: docker-logrotate
No match for argument: docker-engine
No packages marked for removal.
Dependencies resolved.
Nothing to do.
Complete!

设置仓库镜像

默认官方镜像地址: https://download.docker.com/linux/centos/docker-ce.repo,但国外访问速度慢,使用腾讯云提供的docker官方镜像

## 下载yum-utils 包,这个包集成了yum-config-manager的支持
sudo yum install -y yum-utils
## 设置yum-config-manager的仓库镜像为腾讯云镜像
sudo yum-config-manager \
    --add-repo \
    http://mirrors.tencent.com/docker-ce/linux/centos/docker-ce.repo

安装Docker Engine

## 安装最新版daocker引擎
sudo yum install docker-ce docker-ce-cli containerd.io

如果你有安装指定版本的Docker的需求可以查看相关引擎的版本号并安装指定版本

## 查看Docker的可用版本
[root@VM-32-10-centos ~]#  yum list docker-ce --showduplicates | sort -r
Last metadata expiration check: 0:02:01 ago on Fri 10 Dec 2021 10:40:36 AM CST.
docker-ce.x86_64                3:20.10.9-3.el8                 docker-ce-stable
docker-ce.x86_64                3:20.10.8-3.el8                 docker-ce-stable
docker-ce.x86_64                3:20.10.7-3.el8                 docker-ce-stable
docker-ce.x86_64                3:20.10.6-3.el8                 docker-ce-stable
docker-ce.x86_64                3:20.10.5-3.el8                 docker-ce-stable
## 安装指定版本的Docker Engine(VERSION_STRING:对应的版本号字符串)
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

Docker相关启动命令

## 启动docker
sudo systemctl start  docker
## 查看docker的状态
sudo systemctl status docker
## 重启docker
sudo systemctl restart docker
## 停止docker
sudo systemctl stop docker

查看docker版本

## 查看docker的版本号
docker version

如果有如下输出则证明docker安装成功。
在这里插入图片描述

设置镜像加速

vim /etc/docker/daemon.json

## 修改daemon.json文件
{

"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]

}

然后执行 sudo systemctl daemon-reload 并重启docker(systemctl start docker)。

运行Dcoker的hello-world案例

## 运行docker的hello-world案例
sudo docker run hello-world

在这里插入图片描述

docker run发生了什么?

  1. docker run 镜像时会首先会检查本地是否有该镜像,如果有直接运行。
  2. 如果本地无法查找镜像,则尝试去远程镜像仓库进行下载。
  3. 如果远程镜像仓库有该镜像则拉取(pull)到本地仓库并运行该镜像
  4. 如果远程镜像仓库没有该镜像则直接返回错误信息。
    在这里插入图片描述
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐