Docker基本コマンド+コンテナーイメージ

Dockerイメージの概要

前回のブログでは、Dockerに関する理論とミラーリングに関する理論をいくつか書いていますが、必要に応じて、以前のWeiboを直接読むことができます。
これは前のWeiboへのリンクです。ジャンプするには私をクリックしてください!

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

  1. 既存の画像に基づいて作成
  2. ローカルテンプレートに基づいて作成
  3. Dockerfile
    ここに画像の説明を挿入基づいて、Dockerfile 内の各命令が新しいミラーレイヤーを作成します。
    ミラーレイヤーはキャッシュされて再利用されます
    。Dockerfile命令が変更されると、コピーされたファイルが変更されるか、ミラーの構築時に指定された変数が異なると、対応するミラーレイヤーがキャッシュされますそれは無効になります。
    ミラーリングキャッシュの特定のレイヤーに障害が発生すると、後続のミラーリングレイヤーキャッシュは無効になります。
    ミラーリングレイヤーは不変です。ファイルを1つのレイヤーに追加し、次のレイヤーで削除すると、ミラーリングは残ります記事が含まれます

Dockerfile

Dockerfileは一連の命令で構成されるファイルで、
Dockerfile構造は4つの部分に分かれています。

  1. 基本的な画像情報
  2. メンテナ情報
  3. ミラー操作説明書
  4. コンテナの起動時に指示を指定します
    ここに画像の説明を挿入

直接見せて!

ミラーの確立

1.既存の画像に基づいて作成する

コンテナーで実行されているプログラムとオペレーティング環境を新しいイメージ
Dockerコミットパッケージにパッケージ化します。コンテナーID /名前ウェアハウス名:ラベル
共通オプション:
-m説明情報
-作成者情報
-p生成プロセス中にコンテナーの操作を停止します

[root@5centos ~]# docker create -it centos:8 /bin/bash	##创建容器
d61a1f121f3a48ed81ef00da86bb7c573f81235a1fcffb6115e439fd64c328bd
[root@5centos ~]# docker ps -a	##查看ID
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
d61a1f121f3a        centos:8            "/bin/bash"         30 seconds ago      Created                                 wizardly_varahamihira
[root@5centos ~]# docker commit -m "基于镜像建" -a "橘籽酱" d61a1f121f3a oracentos:8		##基于已有容器镜像创建
sha256:cd067ed5ce2254d10b1d7f96b97ba371cfac18899e53b1d39594ac56dd21f73b
[root@5centos ~]# docker images	##查看镜像
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
oracentos            8                   cd067ed5ce22        36 seconds ago      237MB
2233466866/centos8   latest              a2f2e369e78e        6 months ago        237MB
centos               8                   a2f2e369e78e        6 months ago        237MB

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

ミラーは、システムテンプレートファイルをインポートすることで生成できます。テンプレートは、OPENVZオープンソースプロジェクトからダウンロードできます。
アドレスは次のとおりです:https: //wiki.openvz.org/Download/template/precreated
またはwgetを使用してダウンロード:wget http://download.openvz.org/ template / precreated / debian-7.0-x86-minimal.tar.gz

/ optの下にcentos8ミラーがあります

[root@5centos opt]# ls
centos8  containerd  rh
[root@5centos opt]# cat centos8 |docker import - os8:cent
sha256:9997abab01f04c169446e89555a155bd36f040f261134a1740c78a794cba9e3e
[root@5centos opt]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
os8                  cent                9997abab01f0        22 seconds ago      245MB
oracentos            8                   cd067ed5ce22        8 minutes ago       237MB
2233466866/centos8   latest              a2f2e369e78e        6 months ago        237MB
centos               8                   a2f2e369e78e        6 months ago

3、Dockerfileに基づいて作成

Dockerfileを使用してhttpdイメージを作成し、それを実行します(apahceのhttpdは簡単にインストールできるためです)
Dockerfileは一連の指示で構成されるファイルです
。Dockerfile構造は4つの部分に分かれています。

  1. 基本的な画像情報
  2. メンテナ情報
  3. ミラー操作説明書
  4. コンテナの起動時に指示を指定します
[root@5centos opt]# mkdir /apache
[root@5centos opt]# cd /apache
[root@5centos apache]# vim Dockerfile
FROM centos:8	##基于的基础镜像
MAINTAIER Ora <CN-Ora>	##维护人员信息
RUN yum -y update	##升级所有包同时也升级软件和系统bai内核du
RUN yum -y install httpd	##安装httpd
EXPOSE 80	##开启内部端口80
ADD index.html /var/www/html/index.html	##导入文件
ADD run.sh /run.sh	##同上
RUN chmod +x /run.sh	##加权
CMD ["/run.sh"]		##启动容器时启动脚本

[root@5centos apache]# echo "<h1>This is Ora's Web</h1>" > index.html
[root@5centos apache]# vim run.sh
#!/bin/bash
rm -rf /run/httpd/*		##清除容器内的httpd启动
exec /usr/sbin/apachectl -D FOREGROUND	##启动apache
[root@5centos apache]# ls
Dockerfile  index.html  run.sh
[root@5centos apache]# docker build -t httpd:centos .	##创建镜像,记得空格点
Sending build context to Docker daemon  4.096kB
Step 1/9 : FROM centos:8
 ---> a2f2e369e78e
Step 2/9 : MAINTAINER Ora <CN-Ora>
 ---> Running in dff28da90a0d
Removing intermediate container dff28da90a0d
 ---> 438c17c20473
Step 3/9 : RUN yum -y update
 ---> Running in bff3e9d792f1
 ……省略部分……
 Successfully tagged httpd:centos

ミラーを見る

[root@5centos apache]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
httpd                centos              6b85ffdb4c45        23 seconds ago      616MB

この画像を実行

[root@5centos apache]# docker run -d -p 1080:80 httpd:centos	##-p 指定端口号,-P 随机端口号'
a84372f77bc29944addfc436ea6246e399d72d1de123272e759bb04256d6790c
[root@5centos apache]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
a84372f77bc2        httpd:centos        "/run.sh"           36 seconds ago      Up 34 seconds       0.0.0.0:1080->80/tcp   keen_hellman

ここに画像の説明を挿入

Dockerがプライベートウェアハウスを構築

専用倉庫のセットアップ手順

  1. レジストリイメージをダウンロードする
  2. クライアントは、daemon.jsonファイルを設定し、プライベートウェアハウスの場所を指定します
  3. レジストリコンテナーを生成し、ポート5000を開く
  4. ミラーのタグ付け
  5. 画像のアップロード、Dockerプッシュ
  6. 画像をダウンロード、ドッカープル

レジストリイメージをダウンロードする

[root@5centos /]# docker pull registry
Using default tag: latest
latest: Pulling from library/registry
cbdbe7a5bc2a: Pull complete 
47112e65547d: Pull complete 
46bcb632e506: Pull complete 
c1cc712bcecd: Pull complete 
3db6272dcbfa: Pull complete 
Digest: sha256:8be26f81ffea54106bae012c6f349df70f4d5e7e2ec01b143c46e2c03b9e551d
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest

クライアントは、daemon.jsonファイルを設定し、プライベートウェアハウスの場所を指定します

[root@5centos /]# vim /etc/docker/daemon.json
{
    
    
  "insecure-registries": ["20.0.0.5:5000"],	##切记逗号别忘了,registry默认端口为5000
  "registry-mirrors": ["https://xh6uo4bd.mirror.aliyuncs.com"]
}
[root@5centos /]# systemctl restart docker

レジストリコンテナーを生成し、ポート5000を開く

[root@5centos /]# docker create -it registry /bin/bash
4485837c9052ccc202b343d15ad92dcce29018c842639b80389fde7d5c4697d9
[root@5centos /]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS               NAMES
4485837c9052        registry            "/entrypoint.sh /bin…"   4 seconds ago       Created                                           optimistic_gould
a84372f77bc2        httpd:centos        "/run.sh"                12 minutes ago      Exited (137) 50 seconds ago                       keen_hellman
[root@5centos /]# docker run -d -p 5000:5000 -v /opt:/opt registry
447a57de666748033cc1155e5e76bc4dff9c4c674e0dbcfa8da02aa5b5681a1f

ミラーのタグ付け

[root@5centos /]# docker tag httpd:centos 20.0.0.5:5000/httpd
[root@5centos /]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
20.0.0.5:5000/httpd   latest              6b85ffdb4c45        16 minutes ago      616MB
httpd                 centos              6b85ffdb4c45        16 minutes ago      616MB
registry              latest              2d4f4b5309b1        3 months ago        26.2MB

画像をアップロード

[root@5centos /]# docker push 20.0.0.5:5000/httpd 
The push refers to repository [20.0.0.5:5000/httpd]
61e6c1eb3010: Pushed 
4f96d076e862: Pushed 
d9d346bd3bd3: Pushed 
51693b2732fd: Pushed 
3909c87a602a: Pushed 
2f00c0cf81bb: Pushed 
0683de282177: Pushed 
latest: digest: sha256:f7cbad7005013d3ef1958c86bf7c11f83ddb465f4a7ab922cc6827bbf0b66d44 size: 1783
[root@5centos /]# 

ミラーテストをダウンロード

[root@5centos /]# curl -XGET http://20.0.0.5:5000/v2/_catalog
{
    
    "repositories":["httpd"]}	##获取私有库镜像列表
[root@5centos /]# docker pull 20.0.0.5:5000/httpd
Using default tag: latest
latest: Pulling from httpd
Digest: sha256:f7cbad7005013d3ef1958c86bf7c11f83ddb465f4a7ab922cc6827bbf0b66d44
Status: Image is up to date for 20.0.0.5:5000/httpd:latest
20.0.0.5:5000/httpd:latest

おすすめ

転載: blog.csdn.net/Ora_G/article/details/108695879