HCRM博客

如何创建和管理CentOS Docker镜像?

CentOS Docker镜像

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

如何创建和管理CentOS Docker镜像?-图1
(图片来源网络,侵权删除)

一、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之前,需要确保系统是最新的,并安装一些必要的软件包:

如何创建和管理CentOS Docker镜像?-图2
(图片来源网络,侵权删除)
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服务并将其设置为开机自启:

如何创建和管理CentOS Docker镜像?-图3
(图片来源网络,侵权删除)
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

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/17812.html

分享:
扫描分享到社交APP
上一篇
下一篇