本家様http://docs.docker.jp/

Docker Hubで得られるイメージにパッケージの追加や修正らを行い独自のdocker imageを作る際の指示書

ベースのimageをpullしてコンテナにして、それにログインしてyum/apt+手修正して目的のコンテナにしてimageに変換とかでも
いいのだが、ansibleな感じてファイルに記載してそのファイルさえあれば同一の環境が用意できるのが利点

Dockerfile

ごくごく簡単にhttpdが入ったcentosのイメージを作って表示されるかのテスト

[illya@e ~]$ mkdir httpd
[illya@e ~]$ cd httpd/
[illya@e httpd]$ vi Dockerfile
FROM centos:centos7.9.2009
 
RUN yum install -y httpd
 
RUN yum install -y php
 
RUN echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
 
CMD ["/usr/sbin/httpd","-DFOREGROUND"]
 
[illya@e httpd]$

作ったDockerfileでdocker imageを作ってみます

[illya@e httpd]$ docker build -t chaperone/httpd:1.0 .       # 「-t」で名前を付ける[chaperone/httpd]はREPOSITORY. [1.0]はTAGになる
                                                             # [.]はそこのフォルダにあるDockerfileを参照の意
Sending build context to Docker daemon  2.048kB
Step 1/5 : FROM centos:centos7.9.2009
centos7.9.2009: Pulling from library/centos
2d473b07cdd5: Pull complete
 :
 :
Successfully tagged chaperone/httpd:1.0
 
[illya@e httpd]$

「Successfully tagged chaperone/httpd:1.0」とあるので問題なくできたみたい
次にできたimageを確認します。

[illya@e httpd]$ docker images
REPOSITORY        TAG              IMAGE ID       CREATED         SIZE
chaperone/httpd   1.0              a7b2cf54c966   9 minutes ago   441MB
centos            centos7.9.2009   8652b9f0cb4c   2 months ago    204MB
 
[illya@e httpd]$

とできていることが確認できる.

「docker history」でイメージの変更履歴が見れる.

[illya@e httpd]$ docker history centos:centos7.9.2009
IMAGE          CREATED        CREATED BY                                      SIZE      COMMENT
8652b9f0cb4c   2 months ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
<missing>      2 months ago   /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B
<missing>      2 months ago   /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4…   204MB
 
 
 
[illya@e httpd]$ docker history chaperone/httpd:1.0
IMAGE          CREATED          CREATED BY                                      SIZE      COMMENT
a7b2cf54c966   10 minutes ago   /bin/sh -c #(nop)  CMD ["/usr/sbin/httpd" "-…   0B
f3611951cc31   10 minutes ago   /bin/sh -c echo "<?php phpinfo(); ?>" > /var…   20B
b64398cc68c1   10 minutes ago   /bin/sh -c yum install -y php                   111MB
df5c67d3eb7a   10 minutes ago   /bin/sh -c yum install -y httpd                 126MB
8652b9f0cb4c   2 months ago     /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B
<missing>      2 months ago     /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B
<missing>      2 months ago     /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4…   204MB
[illya@e httpd]$

次はこれを動かしてみる

[illya@e httpd]$ docker run -d -p 8080:80 --name httpdTest chaperone/httpd:1.0
b3b043ad27c6bfae949216b2c4b02bf8223563456d71380d09d673b2e2e84d65
 
[illya@e httpd]$ docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                  NAMES
b3b043ad27c6   chaperone/httpd:1.0   "/usr/sbin/httpd -DF…"   17 seconds ago   Up 16 seconds   0.0.0.0:8080->80/tcp   httpdTest
 
[illya@e httpd]$

ここで別の計算機のブラウザで「http://e:8080/phpinfo.php」にアクセスしてphpinfoの値が表示されればOK

もし問題があれば

コンテナが動いてれば

docker exec -it httpdTest /bin/bash

で内部にはいれる.


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2021-01-25 (月) 23:10:49 (31d)