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/docker
3. 更新系统包并安装必要的软件包
在安装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