Podman : Dockerfile を利用する2024/02/28 |
Dockerfile を利用してコンテナーイメージを作成し、コンテナーを実行します。
Dockerfile にはコンテナーの構成内容をまとめて記述するため、構成管理にも役立ちます。 |
|
[1] | 例として、Nginx のインストールと起動を行う Dockerfile を作成します。 |
root@dlp:~ # podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/freebsd-httpd latest add46dedb2b7 6 hours ago 1.44 GB localhost/freebsd-base latest 2527bfa5eeb4 26 hours ago 1.05 GB quay.io/centos/centos stream9 ce3ac91d4020 2 weeks ago 161 MB docker.io/library/ubuntu latest 3db8720ecbf5 2 weeks ago 80.4 MB
root@dlp:~ #
vi Dockerfile # 新規作成 FROM localhost/freebsd-base MAINTAINER ServerWorld <admin@srv.world> RUN pkg install -y nginx RUN echo "Dockerfile Test on Nginx" > /usr/local/www/nginx/index.html EXPOSE 80 CMD ["/usr/local/sbin/nginx", "-g", "daemon off;"] # イメージのビルド ⇒ podman build -t [イメージ名]:[タグ] . root@dlp:~ # podman build -t localhost/freebsd-nginx:latest ./ STEP 1/6: FROM localhost/freebsd-base STEP 2/6: MAINTAINER ServerWorld <admin@srv.world> --> 94a83aae8186 STEP 3/6: RUN pkg install -y nginx ..... ..... Successfully tagged localhost/freebsd-nginx:latest a0a053cc78a36337f6d2ed5d91b03faca848c90ef957d3574246bc804a7a7be3root@dlp:~ # podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/freebsd-nginx latest a0a053cc78a3 13 seconds ago 1.17 GB localhost/freebsd-httpd latest add46dedb2b7 6 hours ago 1.44 GB localhost/freebsd-base latest 2527bfa5eeb4 26 hours ago 1.05 GB quay.io/centos/centos stream9 ce3ac91d4020 2 weeks ago 161 MB docker.io/library/ubuntu latest 3db8720ecbf5 2 weeks ago 80.4 MB # コンテナー起動 root@dlp:~ # podman run -d -p 80:80 freebsd-nginx 26508ff7f0d95d58c16e055fc15be1701535299c51258356f893e0c6ed0ef296root@dlp:~ # podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 26508ff7f0d9 localhost/freebsd-nginx:latest /usr/local/sbin/n... 8 seconds ago Up 7 seconds 0.0.0.0:80->80/tcp boring_newton # 任意のリモートホストからアクセス確認 root@dlp:~ # ssh freebsd@node01.srv.world "curl -s http://`hostname`" (freebsd@node01.srv.world) Password for freebsd@node01.srv.world: Dockerfile Test on Nginx # ローカルホストからアクセスする場合はコンテナーの IP アドレスを指定 root@dlp:~ # podman exec 26508ff7f0d9 /sbin/ifconfig eth0 | grep inet inet 10.88.0.5 netmask 0xffff0000 broadcast 10.88.255.255root@dlp:~ # curl 10.88.0.5 Dockerfile Test on Nginx |
Docker ファイルでの記述フォーマットは [INSTRUCTION arguments] (指示 引数) の形となっており、INSTRUCTION
には主に下記のような種類があります。なお、INSTRUCTION の必須項目は FROM のみで、その他は任意です。FROM
が指定されていれば Docker ファイルは動作します。
|
Sponsored Link |