最近更新时间:2026-05-12 14:49:36
容器镜像是容器技术的核心组成部分,它包含了运行一个应用程序所需的所有内容,包括代码、运行时环境、系统工具、系统库等。本文档将详细介绍如何制作一个简单的容器镜像。
Docker是目前最流行的容器化平台,金山云将使用Docker来制作和管理容器镜像。以下是在不同操作系统上安装Docker的基本步骤:
更新系统包列表
sudo apt-get update安装必要的依赖包
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common添加Docker的官方GPG密钥
curl -fsSL [Docker官方GPG密钥下载地址](https://download.docker.com/linux/ubuntu/gpg) | sudo apt-key add -添加Docker的APT仓库
sudo add-apt-repository "deb [arch=amd64] [Docker的APT仓库](https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable)"更新系统包列表
sudo apt-get update安装Docker CE
sudo apt-get install docker-ce安装必要的依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2添加Docker的YUM仓库
sudo yum-config-manager --add-repo [Docker的YUM仓库](https://download.docker.com/linux/centos/docker-ce.repo)安装Docker CE
sudo yum install docker-ce本实践以CentOS系统为例,制作一个具有http功能的容器镜像,针对制作的镜像可以正常访问http功能。
执行如下操作,运行一个容器,后续操作将针对该容器进行制作。
root@vm10-0-249-178:~# docker run -itd --privileged centos_new /sbin/init
root@vm10-0-249-178:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
52edb2b575ae centos_new "/sbin/init" 2 minutes ago Up 2 minutes nice_dewdney查看是否有正在运行的 centos 容器。
root@vm10-0-249-178:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
52edb2b575ae centos "/sbin/init" 11 minutes ago Up 11 minutes ice_dewdney进入容器。
root@vm10-0-249-178:~# docker exec -it 52edb2b575ae /bin/bash安装 httpd 并使用 systemctl 启动 httpd。
dnf install httpd -y
systemctl start httpd
systemctl enable httpd执行 curl 127.0.0.1:80 进行测试。
修改网页内容并测试。
[root@52edb2b575ae /]# echo kingsoft > /var/www/html/index.html
[root@52edb2b575ae /]# curl 127.0.0.1:80
kingsoft确认已配置完成的容器。
root@vm10-0-249-178:~# docker ps #这个centos已经配置完成http要保存成http镜像
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
52edb2b575ae centos "/sbin/init" 58 minutes ago Up 58 minutes nice_dewdney使用 docker commit 命令将容器保存为镜像。
root@vm10-0-249-178:~# docker commit nice_dewdney http查看新生成的镜像。
root@vm10-0-249-178:~# docker images #commit完成后查看容器保存成镜像了
REPOSITORY TAG IMAGE ID CREATED SIZE
http latest bf1f4a364167 24 seconds ago 280MB使用制作的 http 镜像创建新容器。
root@vm10-0-249-178:~# docker run -itd -p 8080:80 --privileged http /sbin/init
root@vm10-0-249-178:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8082e6f19c1c http "/sbin/init" 3 seconds ago Up 3 seconds 0.0.0.0:8080->80/tcp eloquent_dubinsky测试是否可以访问。
root@vm10-0-249-178:~# curl 127.0.0.1:8080
kingsoft重启容器后再次测试。
root@vm10-0-249-178:~# docker restart 8082e6f19c1c
# 再次测试
root@vm10-0-249-178:~# curl 127.0.0.1:8080
kingsoft
纯净模式
