Dockerイメージを作成してプライベートウェアハウスを確立する方法は次のとおりです。


この記事では主に、Dockerがミラーを作成する2つの方法に関する関連情報を紹介します。Dockerはミラーを作成します。1つはdocker commitコマンドを使用する方法、もう1つはローカルテンプレートを使用する方法、3つ目はDockerfileファイルを使用する方法です。必要な友達は参照できます。

Docker作成イメージ

最近Dockerについて学びましたが、Dockerがインターネット上でオブジェクトを作成するための2つの方法を偶然目にしました。ここに記録しておくとよいでしょう。おそらく、役立つかもしれません。

Dockerでは、イメージに基づいてコンテナーを実行していることは誰もが知っています。イメージを作成するにはどうすればよいですか。ミラーを作成する方法は2つあります。1つはdockercommitコマンドを使用する方法、もう1つはdocker buildコマンドを使用する方法、もう1つはDockerfileを使用する方法です。ここでは、まったく新しいイメージを最初から作成するのではなく、ubuntuなどの既存の基本イメージに基づいてイメージを作成することについて説明します。

1:Dockerイメージの階層化

マーク

  • FROMとそれに続くベースイメージ

  • 追加:アレイシステムからミラーコンテナに命令ファイルを追加します

  • VOLUME:アレイで共有できるリソーススペースは、共有マウントアレイシステムで提供されるスペースに似ています。スペースには、事前にインストールされたソフトウェアパッケージが格納され、コンテナは共有スペースを直接マウントします。

  • CMD:イメージの作成が終了したら、コンテナーを開始するための指示を定義します。

2:Dockerイメージの作成

Dockerイメージ

  • 应用发布的标准格式

  • 支持一个Docker容器的运行

Dockerイメージを作成する方法

  • 基于已有镜像创建

  • 基于本地模板创建

  • 基于Dockerfile创建!!【重点】(关注:参数)

  • ケース環境

ホスト オペレーティング・システム ホスト名/ IPアドレス 主なソフトウェアとバージョン
サーバ Centos 7.6 ローカルホスト/20.0.0.42 Docker-19.03.13:

2.1:すで​​にミラーリングされているものに基づいて作成する

  • 使用docker commit创建
docker commit [选项] 容器ID/名称 仓库名称:[标签]

-m 说明信息
-a 作者信息
-p 生成过程中停止容器的运行
示例

#获取centos:7镜像
[root@localhost ~]# docker pull centos:7

#创建容器
[root@localhost ~]# docker create -it centos:7 /bin/bash
-i:让容器的标准输入保持打开
-t:让Docker分配一个伪终端

#查看容器列表
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
5ad432b34512        centos:7            "/bin/bash"         About a minute ago   Created                                 dazzling_swanson

#启动容器
[root@localhost ~]# docker start 5ad432b34512  

#使用docker commit创建    
[root@localhost ~]# docker commit -m "shuai" -a "daoke" 5ad432b34512 daoke:test
这里5ad432b34512是修改过的容器ID,daoke:test是镜像名跟标签
上面-m选项指定了镜像的提交信息,-a选项标注了作者信息,最后的:test是标签。

#查看镜像列表  可以看到已经创建成功
[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
daoke               test                0ade30d9aa5a        About a minute ago   203MB
nginx               latest              7e4d58f0e5f3        10 days ago          133MB
centos              7                   7e6257c9f8d8        :5 weeks ago          203MB

2.2:ローカルテンプレートに基づいて作成

  • オペレーティングシステムテンプレートファイル
    インポートして新しいイメージを生成するwgetコマンドを使用して、ローカルイメージとしてインポートします
通过导入系统模板文件可以生成镜像,模板可以从OPENVZ开源项目下载
地址为:https://wiki.openvz.org/Download/template/precreated
或者使用wget下载:wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz
  • インポートが成功すると、ローカルミラー情報を表示できます
docker images lgrep new
[root@localhost opt]# ls
debian-7.0-x86-minimal.tar.gz  rh

#基于模板生成
[root@localhost opt]# cat debian-7.0-x86-minimal.tar.gz | docker import - daoke:shuai

#可以看到已经生成  标签为shuai
[root@localhost opt]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
daoke               shuai               df9e22f0a57e        About a minute ago   215MB
daoke               test                0ade30d9aa5a        15 minutes ago       203MB
nginx               latest              7e4d58f0e5f3        10 days ago          133MB
centos              7                   7e6257c9f8d8        5 weeks ago   :       203MB

2.3:dockerfileを使用してミラーを作成する

  • Dockerfileビルドイメージは基本イメージに基づいています。Dockerfileは、ユーザーが作成したいくつかのdocker命令を含むテキストファイルです。各命令はレイヤーをビルドするため、各命令の内容はレイヤーの構築方法を説明します。

2.31:Dockerfileの13の基本的な手順

分再是:FROM、MAINTAINER、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUME、USER、WORKDIR、ONBUILD

マーク

2.31:Dockerfile構造の4つの部分

  • 基本的な画像情報

  • メンテナ情報

  • ミラー操作手順

  • コンテナの起動時に命令を実行する

Dockerfileは、1行に1つの命令をサポートし、各命令は複数のパラメーターを運ぶことができ、「#」で始まるコメントの使用をサポートします

2.4:Dockerfileを使用してミラーを作成する

  • Dockerfileを使用してhttpdミラーを作成し、実行します

  • Dockerfileを書く

#创建一个名称为apache的工作目录
[root@localhost opt]# mkdir apache

#在工作目录创建一个Dockerfile文件     一定不能改名字
[root@localhost opt]# cd apache/
[root@localhost apache]# vim Dockerfile
'//编写信息'

##基于的基础镜像
FROM centos 
##维护镜像的用户信息
MAINTAINER THIS IS SHUAI
##镜像操作指令安装Apache软件
RUN yum -y update    
 ##安装Apache服务 
RUN yum -y install httpd 
##开启80端口
EXPOSE 80  
##复制网址首页文件
ADD index.html /var/www/html/index.html	
##将执行脚本复制到镜像中
ADD run.sh /run.sh           
RUN chmod 755 /run.sh
##启动容器时执行脚本
CMD ["/run.sh"]           
  • スクリプトホームページコンテンツの作成と実行
[root@localhost apache]# echo "this is test web" > index.html
[root@docker apache]# vim run.sh
#!/bin/bash
rm -rf /run/httpd/*	'//清除缓存'
exec /usr/sbin/apachectl -D FOREGROUND	'//启动apache'
  • ミラーを生成
#最后一个千万注意“.” -t:镜像文件名称:标签
[root@localhost apache]# docker build -t httpd:centos .
...省略信息...
Complete!
Removing intermediate container 9bdc2873b24f    '//每层缓存都会生成一个临时的容器来执行命令,然后在删除'
 ---> 40c76ad7fb84
Step 5/9 : EXPOSE 80
 ---> Running in 49402cd8d904
Removing intermediate container 49402cd8d904
 ---> 32033d970f7d
Step 6/9 : ADD index.html /var/www/html/index.html
 ---> f2362d265c6e
Step 7/9 : ADD run.sh /run.sh
 ---> f0a73b8e4103
Step 8/9 : RUN chmod 755 /run.sh
 ---> Running in 51c8d3736c06
Removing intermediate container 51c8d3736c06
 ---> b7cf62b05664
Step 9/9 : CMD ["/run.sh"]
 ---> Running in 290d45883cce
Removing intermediate container 290d45883cce
 ---> e85ac386fe3e
Successfully built e85ac386fe3e
Successfully tagged httpd:centos

#查看镜像,已经生成
[root@localhost apache]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
httpd               centos              073365dcb0eb        37 seconds ago      283MB
centos              7                   7e6257c9f8d8        5 weeks ago         203MB
centos              latest              0d120b6ccaa8        5 weeks ago         215MB
  • 新しいイメージ実行コンテナ
# -d:守护进程   -p:映射端口  对外提供端口随意写 不宿主机冲突就行 -P:大写P是随机端口号

[root@localhost apache]# docker run -d -p 1216:80 httpd:cetnos

#查看容器列表
[root@localhost apache]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
cd1bc0acea9f        httpd:cetnos        "/run.sh"           11 seconds ago      Up 10 seconds       0.0.0.0:1216->80/tcp   beautiful_northcutt
  • クライアントログインテスト

マーク
見てくれてありがとう、学習は止まらない!

おすすめ

転載: blog.csdn.net/weixin_47151643/article/details/108702944