Dockerfileからタグをつけてビルドして実行
2023.02.13
2024.03.24
Docker
Dockerfile
はじめに
Dockerfileを使って、さくっとタグをつけてビルドして、実行する方法を紹介します。
ビルドも実行も本来色々なオプションがありますが、今回はよく使うパターンとして紹介させていただきます。
Dockerfileからタグをつけてビルド
Dockerfileからタグをつけてビルドするコマンドは下記の通りです。-t
オプションでタグを指定します。
1docker build -t {image name}:{tag name} {path/to/Dockerfile}
具体例
下記のようなDockerfile
を用意します。
1FROM nginx:1.23.3
-t
でタグを指定してビルドします。Dockerfile
のパスは.
でカレントディレクトリを指定しています。
1docker build -t nginx-image:test-tag .
イメージを確認するとタグ付きで作成されていることが確認できます。
1❯ docker image ls | grep nginx-image
2nginx-image test-tag 4193e7f130e5 4 weeks ago 142MB
イメージを実行
バックグラウンドで動かしてポートフォワード
バックグランドで実行して、ポートフォワードするコマンドは下記の通りです。--name
で実行するコンテナ名を指定、-d
でバックグラウンドで実行、-p
でポートフォワードします。
1docker run --name {container name} -d -p {host port}:{container port} {image name}:{tag name}
具体例
先ほどビルドしたイメージを実行してみます。
1docker run --name nginx -d -p 8080:80 nginx-image:test-tag
コンテナを確認すると指定した名前で実行されているのがわかります。また、localhost:8080
にアクセスするとnginxからレスポンスを受け取ることができます。
1❯ docker container ls
2CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34ff0019a7dbf nginx-image:test-tag "/docker-entrypoint.…" 8 seconds ago Up 7 seconds 0.0.0.0:8080->80/tcp nginx
4
5❯ curl localhost:8080
6<!DOCTYPE html>
7<html>
8<head>
9<title>Welcome to nginx!</title>
10<style>
11html { color-scheme: light dark; }
12body { width: 35em; margin: 0 auto;
13font-family: Tahoma, Verdana, Arial, sans-serif; }
14</style>
15</head>
16<body>
17<h1>Welcome to nginx!</h1>
18<p>If you see this page, the nginx web server is successfully installed and
19working. Further configuration is required.</p>
20
21<p>For online documentation and support please refer to
22<a href="http://nginx.org/">nginx.org</a>.<br/>
23Commercial support is available at
24<a href="http://nginx.com/">nginx.com</a>.</p>
25
26<p><em>Thank you for using nginx.</em></p>
27</body>
28</html>
シェルに接続する
コンテナをバックグランドで実行するのではなく、実行しつつシェルに接続するコマンドは下記の通りです。シェルに接続するだけでなく、コマンドを実行することも可能です。
1docker run -it {image name}:{tag name} {command}
具体例
同じイメージを実行して、bashに接続してみると、コンテナ上で色々コマンドを試せるようになります。
1❯ docker run -it nginx-image:test-tag bash
2
3root@ad5c1ea85e7a:/# ls
4bin boot dev docker-entrypoint.d docker-entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
参考
Share
関連記事
Docker基本コマンドまとめ
2021.06.30
Docker Composeでflask開発環境構築
2021.09.03
Docker ComposeでNext.jsとflask開発環境を構築する
2021.10.12