Docker 入门私人笔记(五)手动构建 Docker 镜像

本文核心内容:基于现有容器手动创建一个镜像

以创建一个 nginx 的镜像为例。步骤如下。

1. 使用镜像 centos 启动一个容器

docker run --name mynginx -it centos /bin/bash

2. 登录容器内安装 nginx

在阿里云的源中找到 epel 的地址

https://mirrors.aliyun.com/epel/

在容器内执行安装:

rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

安装nginx:

yum install -y nginx

注意:

  • 在镜像中执行完在线安装之后,要执行 yum clean all,把没用的软件包和数据都清理掉,可以降低容器的大小(已验证)。
  • 需要配置 nginx 在前台运行。因为 nginx 默认是在后台运行,容器启动之后马上又会退出(未验证)。具体操作方法是:
    编辑 nginx 配置文件,vi /etc/nginx/nginx.conf,在里面增加一行配置:

    daemon off;

    这样 nginx 就能在前台运行了。

3. 将容器提交为一个本地镜像

命令:

docker commit -m "[备注]" [使用的容器的ID或者容器名] [自定义的镜像名]:[标签]

示例:

docker commit -m "My nginx" 5382f6e3d987 mynginx:v1

Docker 入门私人笔记(五)手动构建 Docker 镜像_第1张图片

4. 验证:使用新创建的 nginx 镜像启动一个容器

命令:

docker run -d -p [宿主机的端口]:[容器的端口] [刚创建的镜像名]:[标签] [容器内执行的命令]

示例:

docker run -d -p 91:80 mynginx:v1 nginx

注意:
该命令的最后一个字段不是容器名或者标签等等,而是要在容器中执行的命令。
image.png

你可能感兴趣的:(Docker 入门私人笔记(五)手动构建 Docker 镜像)