CentOS Docker镜像
CentOS是一种基于Red Hat Enterprise Linux (RHEL)的开源操作系统,以其稳定性和安全性闻名,Docker则是一个开源项目,用于开发、打包、运行和传输应用程序及其依赖项的容器化平台,结合使用CentOS和Docker,可以实现一个高效、稳定且灵活的开发和部署环境,本文将详细介绍如何在CentOS上安装Docker以及如何使用Docker来拉取和管理镜像。

一、CentOS上安装Docker
1. 检查系统是否已安装Docker
需要检查系统中是否已经安装了Docker,如果已经存在Docker,可以选择卸载旧版本再重新安装。
systemctl status docker rpm qa | grep E "docker"
2. 卸载旧版本Docker
如果系统中已经安装了Docker,可以使用以下命令卸载:
sudo yum remove docker \
dockerclient \
dockerclientlatest \
dockercommon \
dockerlatest \
dockerlatestlogrotate \
dockerlogrotate \
dockerengine
rm rf /var/lib/docker3. 更新系统包并安装必要的软件包
在安装Docker之前,需要确保系统是最新的,并安装一些必要的软件包:

sudo yum update y sudo yum install y yumutils devicemapperpersistentdata lvm2
4. 设置Docker仓库
为了从官方仓库中获取最新的Docker版本,需要添加Docker的YUM仓库:
sudo yumconfigmanager addrepo https://download.docker.com/linux/centos/dockerce.repo
5. 安装Docker引擎
执行以下命令以安装最新版本的Docker引擎:
sudo yum install dockerce dockercecli containerd.io
6. 启动Docker并设置为开机自启
安装完成后,启动Docker服务并将其设置为开机自启:

sudo systemctl start docker sudo systemctl enable docker
7. 验证Docker安装
通过运行以下命令验证Docker是否正确安装并查看其版本:
docker version
输出示例如下:
Docker version 20.10.12, build 20.10.120ubuntu1~20.04.1
二、配置国内镜像源(以阿里云为例)
由于网络原因,直接从默认的Docker Hub拉取镜像速度较慢,建议配置国内的镜像源,这里以阿里云为例。
1. 登录阿里云控制台并获取专属加速地址
访问[阿里云官网](https://www.aliyun.com/),登录后进入“产品与服务”>“容器服务”>“容器镜像服务”,找到镜像加速器并复制专属的加速地址。
2. 修改或创建/etc/docker/daemon.json文件
编辑或创建/etc/docker/daemon.json文件,并添加以下内容:
{
"registrymirrors": ["<你的专属加速地址>"]
}
{
"registrymirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"]
}保存并关闭文件。
3. 重新加载Docker配置文件并重启Docker服务
sudo systemctl daemonreload sudo systemctl restart docker
三、常用Docker命令
1. 搜索镜像
docker search centos
2. 拉取镜像
docker pull centos:latest
3. 列出本地镜像
docker images
4. 运行容器
docker run it centos:latest /bin/bash
5. 停止并删除容器
docker stop <容器ID> docker rm <容器ID>
四、制作自定义CentOS Docker镜像
可以通过编写Dockerfile来创建自定义的CentOS Docker镜像,以下是一个简单的例子,创建一个包含基本开发工具的CentOS镜像。
1. 创建一个名为Dockerfile的文件,内容如下:
使用官方CentOS基础镜像
FROM centos:7
设置环境变量,避免时区问题
ENV LANG=zh_CN.UTF8
安装常用的开发工具和服务
RUN yum y update && \
yum y install \
vim \
wget \
tree \
git \
pythondevel \
make \
gcc \
cmake \
openssldevel \
which \
curl \
&& yum clean all
安装SSH服务
RUN yum y install opensshserver && \
mkdir /var/run/sshd && \
sshkeygen A t rsa
暴露端口
EXPOSE 22 8080
设置工作目录
WORKDIR /root
默认启动命令
CMD ["/usr/sbin/init"]2. 构建镜像
docker build t mycentos:latest .
3. 运行镜像
docker run it p 2222:22 mycentos:latest /bin/bash
p 2222:22表示将宿主机的2222端口映射到容器的22端口。
五、推送镜像到阿里云镜像仓库
需要在阿里云镜像仓库中创建一个命名空间,然后登录并推送镜像。
1. 登录阿里云镜像仓库
docker login username=your_username registry.cnshanghai.aliyuncs.com
输入密码后登录成功。
2. 给镜像打标签
docker tag mycentos:latest registry.cnshanghai.aliyuncs.com/your_namespace/mycentos:latest
3. 推送镜像到阿里云镜像仓库
docker push registry.cnshanghai.aliyuncs.com/your_namespace/mycentos:latest
六、常见问题解答(FAQs)
Q1: 如何更改Docker容器中的默认shell?
A1: 可以在运行容器时指定要使用的shell,
docker run it centos:latest /bin/bash
或者,在构建镜像时通过Dockerfile设置默认shell:
CMD ["/bin/bash"]
Q2: 如何从私有仓库中拉取Docker镜像?
A2: 如果需要从私有仓库中拉取镜像,首先需要登录该私有仓库,然后才能拉取镜像,从阿里云私有仓库拉取镜像:
docker login username=your_username registry.cnshanghai.aliyuncs.com docker pull registry.cnshanghai.aliyuncs.com/your_namespace/your_image:tag
