简介

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。

Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc.。 Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。

Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。

在 LXC 的基础上,Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。 用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。


为什么要是使用Docker

作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。

首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。 其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。 传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而 Docker 只需要启动 10 个隔离的应用即可。



系统环境

我之前使用Centos习惯了,所以后面使用的是Almalinux

下面使用到不同的命令的时候我会做解释



开始前的注意事项

如果不是用root账户登录系统的,后面的命令记得在前面加sudo,我是直接使用root登录的



安装必要工具(CentOS/RHEL跳过这一步)

更新软件包索引到本地缓存

Debian/Ubuntu (apt):

apt update

开始安装必要工具

Debian/Ubuntu (apt):

apt install -y ca-certificates curl gnupg lsb-release

命令解释:

apt:使用apt

install:安装

-y:无需询问直接安装

ca-certificates:安装ca-certificates

curl:安装curl

gnupg lsb-release:安装gnupg lsb-release



添加 Docker 官方 GPG key(CentOS/RHEL跳过这一步)

mkdir -p /etc/apt/keyrings    #创建文件夹
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \    #下载文件
  | gpg --dearmor -o /etc/apt/keyrings/docker.gpg    把下载的文件转成二进制公钥文件


添加 Docker 官方软件源

Debian/Ubuntu (apt):

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

CentOS/RHEL(yum):

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

1.png



安装 Docker Engine 和 docker-compose

Debian/Ubuntu (apt):

apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

CentOS/RHEL(yum):

yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2.png



启动Docker并设置开机自启

Debian/Ubuntu (apt)和CentOS/RHEL(yum):通用

sudo systemctl start docker
sudo systemctl enable docker

3.png



验证Docker是否安装正常

Debian/Ubuntu (apt)和CentOS/RHEL(yum):通用

sudo docker run hello-world

正常情况执行完上面命令会出现Unable to find image 'hello-world:latest' locally,当你运行:docker run hello-worldDocker 会先在本地查找是否已有名为 hello-world:latest 的镜像。

如果本地没有(第一次用肯定没有),就会从 Docker Hub(官方镜像仓库)拉取(下载)这个镜像。

拉取完成后,才运行镜像里的程序。

在你刚才那条提示之后,Docker 会继续显示类似:

latest: Pulling from library/hello-world
...
Hello from Docker!
...

如果能成功拉取并运行,就会输出一段“Hello from Docker!” 的文本,说明 Docker 安装和运行都成功了。

但是国内有个问题,那就是Docker的镜像仓库在国外,在国内一般拉取都会超时,就像我下面这个图片这样,这时候我们就需要配置Docker国内加速器了。

4.png



配置Docker国内加速器

下面以阿里云的源作为示例


登录阿里云获取加速地址

打开下面这个连接并登录

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

5.png

登录后会看到一个加速地址和一个操作文档

6.png


使用加速地址

按照操作文档的操作,复制操作文档里面的代码

8.png

直接粘贴到终端里面并回车执行

9.png



再次测试

使用下面命令再次测试

sudo docker run hello-world

15.png


二维码

发表评论