在 CentOS 上安装和部署 Docker 是一个常见的操作流程,因为 Docker 为应用程序提供了一种轻量级的虚拟化解决方案,使得软件可以在任何环境中以一致的方式运行。下面是一个详细的指南,介绍如何在 CentOS 上安装和配置 Docker。
首先,确保您的 CentOS 系统是*的。运行以下命令来更新软件包索引和升级系统:
sudo yum update -y
更新既能修复已知的 bug 也能提高系统的安全性,为 Docker 的安装做好准备。
如果系统上已经安装了旧版本的 Docker,需要先卸载,以避免出现兼容性问题:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
Docker 依赖一些软件包,这些软件包有助于 Docker 从远程 repository 获取和安装它的组件:
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
Docker 可以从其官方的 repository 中进行安装。使用下面命令将 Docker 的库加入到 yum 源中:
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
现在,你可以安装 Docker CE(社区版):
sudo yum install -y docker-ce docker-ce-cli containerd.io
在安装过程中,yum 将会解决 Docker 的各种依赖关系,并安装相应的包。
安装完成后,启动 Docker 服务并将其设置为开机启动:
sudo systemctl start docker
sudo systemctl enable docker
要验证 Docker 是否正确启动并运行,可以使用下面的命令:
sudo systemctl status docker
这将显示 Docker 服务的状态,如果正常启动,你将看到 active (running)
。
为了验证 Docker 是否安装成功并能够正常工作,可以运行一个简单的容器:
sudo docker run hello-world
该命令会从 Docker Hub 拉取一个简单的 hello-world
镜像并在容器中运行它。如果一切正常,你将看到一个 Hello from Docker 的信息输出。
在默认情况下,只有 root 用户和 docker 组的用户可以访问 Docker 的守护进程。为了避免每次运行 Docker 命令时都需要使用 sudo
,可以将自己的用户加入到 docker 组中:
sudo usermod -aG docker your-username
退出并重新登录以确保组的更改生效。
由于国内访问 Docker Hub 较缓慢,可以通过配置镜像加速器来提高拉取速度。编辑或创建 /etc/docker/daemon.json
文件,添加以下内容来配置加速器(以阿里云加速器为例):
{
"registry-mirrors": ["https://<your-mirror-id>.mirror.aliyuncs.com"]
}
请将 <your-mirror-id>
替换为你的加速器 ID。
配置完成后重启 Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
以下是一些常用的 Docker 命令介绍,为后续使用 Docker 提供参考:
列出 Docker 镜像:
docker images
这个命令会列出本地存储的 Docker 镜像。
列出运行中的容器:
docker ps
如果要查看包括已停止的容器:
docker ps -a
删除镜像:
docker rmi <image-id>
删除容器:
docker rm <container-id>
拉取镜像:
docker pull <image-name>
运行命令行交互的容器:
docker run -it <image-name> /bin/bash
到此为止,我们已经在 CentOS 上成功地安装并配置了 Docker。借助 Docker,您可以在独立于操作系统的环境中运行各种应用程序,还可以将软件和其所有依赖项打包成易于分享的单一容器。
掌握 Docker 的使用不仅仅限于安装和配置,还包括如何编写 Dockerfile、管理容器编排(如 Kubernetes 等)以及更高阶的网络和安全设置。随着您对 Docker 技术了解的进一步深化,您将能够更加有效地利用容器化技术来提高工作效率和简化应用程序的部署流程。