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