A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梦缠绕的时候 黑马粉丝团   /  2018-10-28 09:15  /  840 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

创建镜像的三种方式:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建。第三种基于Dockerfile创建镜像的方式会在后续章节深入讲解

    1.使用commit 方式创建
    思路:先获取一个镜像,进入容器中对容器进行修改,之后提交该容器,生成一个新镜像。

    镜像是多层存储,每一层是在前一层的基础上进行的修改;而容器同样也是多层存储,是在以镜像为基础层,在其基础上加一层作为
容器运行时的存储层。测试样例:

docker run --name webserver -d -p 80:80 nginx

这条命令会用 nginx 镜像启动一个容器,命名为 webserver ,并且映射了 80 端口,这样我们可以用浏览器去访问这个 nginx 服务器。

如果是云主机,则访问公网IP;若是Docker for Mac、Docker for Windows,那么可以直接访问:http://localhost。如图:



进入容器,对其进行修改:

$ docker exec -it webserver bash

root@4e8b9f358d54:/#    echo    '<h1>Hello,   Docker!</h1>' >    /usr/share/nginx/html/index.html

root@4e8b9f358d54:/#    exit

exit

我们以交互式终端方式进入webserver 容器,并执行了 bash 命令,也就是获得一个可操作的Shell。并修改了 /usr/share/nginx/html/index.html。

刷新浏览器:



至此,我们修改了容器的文件,也就是改动了容器的存储层。我们可以通过 docker diff 命令看到具体的改动。

$   docker  diff    webserver

    提交容器,将其保存为镜像:docker commit ,其语法格式为:

docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]

主要选项:

-a, --author="" 坐着信息
-m, --message="" 提交信息
-p, --pause=true 提交时暂停容器运行  
$   docker  commit  \

   --author  "yuor name <your email>"    \

   --message  "修改了默认网页" \

   webserver   \

   nginx:v2

查看生成的镜像:

docker images

    2. 使用Dockerfile制作镜像
以 nginx 镜像为例。

在一个空白目录中,建立一个文本文件,并命名为 Dockerfile :

$ mkdir mynginx

$ cd  mynginx

$ touch  Dockerfile

其内容为:

FROM nginx

RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

这个 Dockerfile 很简单,一共就两行。涉及到了两条指令, FROM 和 RUN 。

在 Dockerfile 文件所在目录执行:

$ docker build -t nginx:v3 .

(末尾的“.”保留)

     3. 基于本地模板导入
格式:

docker import [选项] <文件>|<URL>|- [<仓库名>[:<标签>]]

压缩包可以是本地文件、远程 Web 文件,甚至是从标准输入中得到。压缩包将会在镜像 / 目录展开,并直接作为镜像第一层提交。

比如创建一个 OpenVZ 的 Ubuntu 14.04 模板的镜像:

$ docker import \

http://download.openvz.org/templ ... 6_64-minimal.tar.gz \

openvz/ubuntu:14.04

对应 docker import 有一个 docker export ,这个命令用于导出容器的文件系统到压缩文件中,用法:

docker export [OPTIONS] CONTAINER ,导出的文件位置在当前执行命令的目录下,这里不多做介绍。

创建镜像
创建镜像创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个。修改已有镜像先使用下载的镜像启动容器。$ sudo docker run -t -i ...
---------------------
作者:安心Smile
来源:CSDN
原文:https://blog.csdn.net/ANXIN997483092/article/details/82697977
版权声明:本文为博主原创文章,转载请附上博文链接!

1 个回复

倒序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马