当前位置:  首页>> 技术小册>> 云计算那些事儿:从IaaS到PaaS进阶(三)

7.7.1 Docker在Linux上的部署

在云计算的广阔领域中,容器化技术以其轻量级、可移植性和高效资源利用的特点,成为了现代软件开发与部署的重要基石。Docker作为容器技术的代表,不仅简化了应用程序的打包、分发和部署过程,还极大地促进了微服务架构的普及。本章将深入探讨Docker在Linux系统上的部署过程,从环境准备到Docker引擎的安装、配置及基本使用,为读者提供一份详尽的指南。

7.7.1.1 环境准备

在部署Docker之前,首先需要确保Linux系统满足Docker运行的基本要求。Docker官方支持多种Linux发行版,包括但不限于Ubuntu、CentOS、Debian等。以下步骤以Ubuntu 20.04 LTS为例进行说明,但大部分步骤在其他支持的Linux发行版上也是相似的。

1. 更新系统

首先,确保你的Linux系统是最新的,这有助于避免安装过程中的兼容性问题。打开终端,执行以下命令更新系统和软件包列表:

  1. sudo apt update
  2. sudo apt upgrade

2. 安装必要的依赖

Docker的某些功能依赖于特定的系统库和工具。安装Docker之前,你可能需要安装或更新这些依赖。对于Ubuntu系统,Docker的官方安装指南通常会列出必要的依赖项。然而,在大多数情况下,直接安装Docker会自动处理这些依赖。

3. 配置防火墙(可选)

如果你的Linux系统配置了防火墙(如UFW),并且你打算从外部访问Docker容器,你可能需要调整防火墙规则以允许Docker使用的端口(默认为2375/tcp,如果使用Docker Engine的TLS配置,则可能不同)。但请注意,直接暴露Docker端口到公网可能会带来安全风险,建议仅在必要且采取适当安全措施的情况下进行。

7.7.1.2 安装Docker

Docker的安装过程相对直接,可以通过Docker的官方仓库或使用系统的包管理器来完成。

1. 导入Docker的GPG密钥(如果使用仓库安装)

首先,需要从Docker的官方仓库导入GPG密钥,以确保下载的软件包是可信的。对于Ubuntu系统,可以使用以下命令:

  1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

2. 设置Docker仓库

接下来,设置Docker的APT仓库地址。对于Ubuntu系统,可以添加一个指向Docker官方仓库的新列表文件:

  1. echo \
  2. "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  3. $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3. 安装Docker引擎

现在,可以使用系统的包管理器来安装Docker引擎了。对于Ubuntu系统,使用以下命令:

  1. sudo apt update
  2. sudo apt install docker-ce docker-ce-cli containerd.io

注意:docker-ce代表Docker的社区版(Community Edition),是Docker的免费和开源版本。

4. 验证安装

安装完成后,通过运行docker --version命令来验证Docker是否成功安装。如果一切正常,该命令将输出Docker的版本信息。

7.7.1.3 配置Docker

安装完成后,可能需要根据你的需求对Docker进行一些基本配置。

1. 启用Docker服务

Docker作为一个守护进程运行,在大多数Linux系统上,你需要启动Docker服务才能使其工作。对于使用systemd的系统(如Ubuntu 16.04及更高版本),可以使用以下命令启动Docker服务,并设置其随系统启动而自动启动:

  1. sudo systemctl start docker
  2. sudo systemctl enable docker

2. 配置Docker守护进程

Docker守护进程(dockerd)的配置文件通常位于/etc/docker/daemon.json。你可以通过编辑这个文件来配置Docker的各种选项,如镜像仓库地址、日志驱动、存储驱动等。如果文件不存在,你可以手动创建它。

例如,要将Docker配置为使用中国的Docker镜像仓库以提高下载速度,可以添加如下内容到daemon.json

  1. {
  2. "registry-mirrors": ["https://<your-mirror-url>.mirror.aliyuncs.com"]
  3. }

替换<your-mirror-url>为你选择的镜像仓库地址。

3. Docker用户组

默认情况下,运行Docker命令需要sudo权限。为了避免每次运行Docker命令时都输入sudo,你可以将用户添加到docker用户组。首先,创建docker用户组(如果尚未创建):

  1. sudo groupadd docker

然后,将你的用户添加到该组:

  1. sudo usermod -aG docker $USER

注意:修改用户组后,你需要注销并重新登录,或者重启你的系统,以使更改生效。

7.7.1.4 Docker的基本使用

安装并配置好Docker后,就可以开始使用Docker来构建、运行和管理容器了。

1. 查找Docker镜像

Docker Hub是Docker的官方镜像仓库,包含了成千上万的镜像,覆盖了各种应用程序和服务。你可以使用docker search命令来查找你需要的镜像,例如:

  1. docker search ubuntu

2. 拉取Docker镜像

找到你需要的镜像后,可以使用docker pull命令将其下载到你的本地系统。例如,要下载Ubuntu的官方镜像,可以执行:

  1. docker pull ubuntu

3. 运行Docker容器

下载镜像后,就可以使用docker run命令来运行容器了。例如,要运行一个基于Ubuntu镜像的容器,并启动一个bash会话,可以执行:

  1. docker run -it ubuntu bash

其中,-it选项将容器的标准输入附加到当前终端,并分配一个伪终端。

4. 列出Docker容器

你可以使用docker ps命令列出当前正在运行的容器,或使用docker ps -a列出所有容器(包括已停止的)。

5. 停止和删除Docker容器

你可以使用docker stop命令停止正在运行的容器,使用docker rm命令删除已停止的容器。

7.7.1.5 小结

本章详细介绍了Docker在Linux系统上的部署过程,包括环境准备、Docker的安装、配置以及基本使用。通过掌握这些基础知识,你将能够利用Docker来简化应用程序的打包、分发和部署流程,从而提高开发效率和运维效率。随着你对Docker的深入了解,你还可以探索更多高级特性和最佳实践,如Docker Compose、Docker Swarm等,以构建更加复杂和强大的容器化应用程序。


该分类下的相关小册推荐: