📑

【Docker】Dockerfile作成〜Dockerイメージ作成迄の手順

2023/06/10に公開

はじめに

仕事で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

参考

https://di-acc2.com/system/23152/

Discussion