記事ディレクトリ
Dockerイメージの概要
前回のブログでは、Dockerに関する理論とミラーリングに関する理論をいくつか書いていますが、必要に応じて、以前のWeiboを直接読むことができます。
これは前のWeiboへのリンクです。ジャンプするには私をクリックしてください!!
Dockerイメージを作成する3つの方法
- 既存の画像に基づいて作成
- ローカルテンプレートに基づいて作成
- Dockerfile
に基づいて、Dockerfile 内の各命令が新しいミラーレイヤーを作成します。
ミラーレイヤーはキャッシュされて再利用されます
。Dockerfile命令が変更されると、コピーされたファイルが変更されるか、ミラーの構築時に指定された変数が異なると、対応するミラーレイヤーがキャッシュされますそれは無効になります。
ミラーリングキャッシュの特定のレイヤーに障害が発生すると、後続のミラーリングレイヤーキャッシュは無効になります。
ミラーリングレイヤーは不変です。ファイルを1つのレイヤーに追加し、次のレイヤーで削除すると、ミラーリングは残ります記事が含まれます
Dockerfile
Dockerfileは一連の命令で構成されるファイルで、
Dockerfile構造は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つの部分に分かれています。
- 基本的な画像情報
- メンテナ情報
- ミラー操作説明書
- コンテナの起動時に指示を指定します
[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がプライベートウェアハウスを構築
専用倉庫のセットアップ手順
- レジストリイメージをダウンロードする
- クライアントは、daemon.jsonファイルを設定し、プライベートウェアハウスの場所を指定します
- レジストリコンテナーを生成し、ポート5000を開く
- ミラーのタグ付け
- 画像のアップロード、Dockerプッシュ
- 画像をダウンロード、ドッカープル
レジストリイメージをダウンロードする
[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