📑
【Docker】Dockerfile作成〜Dockerイメージ作成迄の手順
はじめに
仕事でDockerを使用するということもあり、Dockerを勉強する必要が出てきました。
そのため、今回は勉強の一環ということでDockerfile作成〜Dockerイメージ作成迄の流れを記事にしたいと思います。
環境
- MacOS Ventura 13.2.1
$ sw_vers
ProductName: macOS
ProductVersion: 13.2.1
BuildVersion: 22D68
- Docker 20.10.0
$ docker --version
Docker version 20.10.0, build 7287ab3
目的
以下のように、「Hello World!!」と表示させるためのDockerコンテナを格納したイメージを作成する。
手順
①必要なファイルを用意する。
フォルダ構成
testweb
|-- Dockerfile
|-- index.html
Dockerfile
FROM httpd
COPY index.html /usr/local/apache2/htdocs/
index.html
<html>
<body>
<div>Hello World!!</div>
</body>
</html>
②ビルドを実施する。
Terminalにて1で作成したtestディレクトリ直下に遷移し、以下のビルドコマンドを実行する。
コマンド
docker build -t testweb .
実行例
$ docker build -t testweb .
Sending build context to Docker daemon 3.072kB
Step 1/2 : FROM httpd
---> d1676199e605
Step 2/2 : COPY index.html /usr/local/apache2/htdocs/
---> 8af2fd558736
Successfully built 8af2fd558736
Successfully tagged testweb:latest
イメージが作成されていることを確認。
コマンド
docker images
実行例
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
testweb latest 8af2fd558736 16 minutes ago 145MB
$
IMAGE ID 8af2fd558736
を控えておく。
③コンテナの起動確認
作成したイメージを使用してコンテナが起動するか確認する。
コマンド
docker run --name <コンテナ名> -d -p <ポート番号> <イメージID>
実行例
$ docker run --name testweb -d -p 8092:80 8af2fd558736
e8dd034a6773f57000fbeb47ba9cfe36a3c7c2e0919db1e3cf9526af76d0dd23
$
※上記の場合、コンテナ名 : testweb
,ポート番号: 8092:80
, イメージID 8af2fd558736
になります。
Dockerコンテナが正常に起動していることを確認する。
コマンド
docker ps
実行例
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e8dd034a6773 8af2fd558736 "httpd-foreground" About a minute ago Up About a minute 0.0.0.0:8092->80/tcp testweb
ブラウザでページが表示されることを確認する。
URL
localhost:8092
④後始末
起動しているDockerコンテナのイメージIDを確認する。
コマンド
docker ps -a
実行例
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e8dd034a6773 8af2fd558736 "httpd-foreground" About a minute ago Up About a minute 0.0.0.0:8092->80/tcp testweb
※上記の場合、コンテナIDは e8dd034a6773
になります。
起動しているDockerコンテナを停止する。
コマンド
docker stop <コンテナID>
docker rm <コンテナID>
実行例
$ docker stop e8dd034a6773
e8dd034a6773
$ docker rm e8dd034a6773
e8dd034a6773
以下コマンドを実行し、上記のコンテナが存在しないことを確認
コマンド
docker ps -a
参考
Discussion