0%

Docker 基础知识:如何安装

写在前面

NW4EpX20201209

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

主要用途:

  • 提供一次性的环境,比如测试软件、持续集成的时候提供单元测试和构建的环境。

  • 提供弹性的云服务,适合动态扩容和缩容。

  • 组建微服务架构,一台机器可以跑多个服务。

主要优势:

  • 对开发人员:Build Once, Run Anywhere

  • 对运维人员:Configure Once, Run Anywhere

基本概念

镜像(Image)

Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。

容器(Container)

容器是镜像的实例化,本身也是一个文件,称为容器文件。

仓库(Repository)

Docker Hub是默认的 Registry,由 Docker公司维护,上面有数以万计的镜像,用户可以自由下载和使用。

安装及启动

Docker 是一个开源的商业产品,有两个版本:

  • 社区版(Community Edition,缩写为 CE):免费,个人推荐用这个
  • 企业版(Enterprise Edition,缩写为 EE)

CentOS下安装启用

安装

系统要求

Docker 支持 64 位版本 CentOS 7/8,并且要求内核版本不低于 3.10。

准备工作
  • 卸载旧版本
1
2
3
4
5
6
7
8
9
10
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
  • 替换国内源
1
2
3
4
5
$ sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

$ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
  • 安装依赖包
1
$ sudo yum install -y yum-utils
安装
1
$ sudo yum install docker-ce docker-ce-cli containerd.io
CentOS8 额外设置

由于 CentOS8 防火墙使用了 nftables,但 Docker 尚未支持 nftables,因此需要使用 iptables。

1
2
3
4
5
6
# 方法一:需要修改etc/firewalld/firewalld.conf配置文件:
FirewallBackend=iptables

# 方法二:执行如下命令:
$ firewall-cmd --permanent --zone=trusted --add-interface=docker0
$ firewall-cmd --reload

首次启动

启动
1
2
$ sudo systemctl enable docker
$ sudo systemctl start docker
建立 docker 用户组

docker 命令会使用 Unix socket 与 Docker 引擎通讯,而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,需要将使用 docker 的用户加入 docker 用户组。

1
2
3
4
5
6
7
# 第一步:建立 docker 组:
$ sudo groupadd docker

# 第二步:将当前用户USER名加入 docker 组:
$ sudo usermod -aG docker $USER

# 第三步:退出当前终端并重新登录
测试 Docker 是否安装正确
1
2
# 运行 hello world 脚本
$ docker run hello-world

Respberry Pi 安装启用

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 使用 APT 安装
$ sudo apt-get update

$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
lsb-release \
software-properties-common

# 为确认软件包的合法性,需要添加软件源的 GPG 密钥
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/raspbian/gpg | sudo apt-key add -

# 向 sources.list 中添加 Docker 软件源
$ sudo add-apt-repository \
"deb [arch=armhf] https://mirrors.aliyun.com/docker-ce/linux/raspbian \
$(lsb_release -cs) \
stable"

# 更新 apt 软件包缓存,并安装 docker-ce
$ sudo apt-get update
$ sudo apt-get install docker-ce

# 验证是否安装成功。
$ docker version
# 或
$ docker info

首次启动设置

1
2
# 与centos 设置类似,测试是否安装成功,运行一下命令行
$ docker run arm32v7/hello-world

MacOS 安装

1
2
3
4
5
6
7
8
9
10
# 使用 Homebrew 安装
$ brew cask install docker

# 也可以从安装包直接安装

# 检查安装后版本
$ docker --version
$ docker-compose --version

# 测试是否安装成功

配置镜像加速器

国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。

CentOS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 使用 systemd 的 Linux 发行版中配置镜像加速器。
# 首先执行以下命令,查看是否在 docker.service 文件中配置过镜像地址
$ systemctl cat docker | grep '\-\-registry\-mirror'

# 如果该命令有输出,那么请执行 $ systemctl cat docker 查看 ExecStart= 出现的位置,修改对应的文件内容去掉 --registry-mirror 参数及其值,并按接下来的步骤进行配置。
# 如果以上命令没有任何输出,那么就可以在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}

# 重新启动服务

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

macOS

1
2
3
4
5
6
7
8
9
# 在任务栏点击 Docker Desktop 应用图标 -> Perferences,在左侧导航菜单选择 Docker Engine,在右侧像下边一样编辑 json 文件

{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
# 修改完成之后,点击 Apply & Restart
-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!