Docker之核心概念与配置

2021-12-07 16:09:19 浏览数 (1)

核心概念

1. Docker 镜像

Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。 镜像是创建 Docker 容器的基础 。 通过版本管理和增量的文件系统,Docker 提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用。

2. Docker 容器

Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。 容器是从镜像创建的应用运行实例。它可以启动、开始、停止 、 删除,而这些容器都是彼此相互隔离、互不可见的。

3. Docker 仓库

Docker 仓库类似于代码仓库,是 Docker 集中存放镜像文件的场所。 根据所存储的镜像公开分享与否, Docker 仓库可以分为公开仓库( Public )和私有仓库( Private)两种形式 。

当用户创建了自己的镜像之后就可以使用 push 命令将它上传到指定的公有或者私有仓库。 这样用户下次在另外一台机器上使用该镜像时,只需要将其从仓库上 pull 下来就可以了。

安装Docker引擎

目前 Docker 支持 Docker 引 擎Docker HubDocker Cloud 等多种服务 。

  • Docker 引擎:包括支持在桌面系统或云平台安装 Docker,以及为企业提供简单安全弹性的容器集群编排和管理;
  • Docker Hub :官方提供的云托管服务,可以提供公有或私有的镜像仓库;
  • DockerCloud :官方提供的容器云服务,可以完成容器的部署与管理,可以完整地支持容器化项目,还有CI、CD功能 。
CentOS 环境下安装 Docker

首先,为了方便添加软件源,以及支持 devicemapper 存储类型,安装如下软件包:

代码语言:javascript复制
sudo yum update
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 

添加 Docker 稳定版本的 yum 软件源:

代码语言:javascript复制
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

之后更新 yum 软件源缓存,并安装 Docker:

代码语言:javascript复制
sudo yum update
sudo yum install -y docker-ce

最后,确认 Docker 服务启动正常 :

代码语言:javascript复制
sudo systernctl start docker

配置 Docker 服务

为了避免每次使用 Docker 命令时都需要切换到特权身份,可以将当前用户加入安装中

  • 自动创建的 docker 用户组,代码如下:
代码语言:javascript复制
sudo usermod -aG docker USER NAME
  • 用户更新组信息,退出并重新登录后即可生效 。

Docker 服务启动时实际上是调用了 dockerd 命令,支持多种启动参数 。 因此,用户可以直接通过执行 dockerd 命令来启动 Docker 服务,如下面的命令启动 Docker 服务,开启Debug 模式,并监听在本地的 2376 端口:

代码语言:javascript复制
dockerd -D -H tcp://127.0.0.1:2376

这些选项可以写入/etc/docker/路径下的 daemon.json 文件中,由 dockerd 服务启动时读取:

代码语言:javascript复制
{
	"debug": true,
	"hosts":[" tcp://127.0.0 . 1:2376 ”]
}

当然,操作系统也对 Docker 服务进行了封装,以使用 Upstart 来管理启动服务的Ubuntu 系统为例, Docker 服务的默认配置文件为 Ietc/default/docker ,可以通过修改其中的DOCKER OPTS 来修改服务启动的参数,例如让 Docker 服务开启网络 2375 端口的监昕:

代码语言:javascript复制
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock”

修改之后,通过 service 命令来重启 Docker 服务:

代码语言:javascript复制
sudo service docker restart

对于 CentOS 、 RedHat 等系统,服务通过 systemd 来管理,配置文件路径为 /etc/systemd/system/docker.service.d/docker.conf。 更新配置后需要通过 systemctl 命令来管理 Docker服务:

代码语言:javascript复制
sudo systemctl daemon-reload
sudo systemctl start docker.service

此外,如果服务工作不正常,可以通过查看 Docker 服务的日志信息来确定问题,例如在 RedHat 系统上日志文件可能为 /var/log/messages ,在 Ubuntu 或 CentOS 系统上可以执行命令 journalctl -u docker.service。 每次重启 Docker 服务后,可以通过查看 Docker 信息( docker info 命令),确保服务已经正常运行。

0 人点赞