8
3

More than 1 year has passed since last update.

【Docker初心者】Dockerの基本操作について Part2(ポート公開、コマンド実行、削除等)

Last updated at Posted at 2023-05-14

1.はじめに

最近、山浦清透さんが運営されているプログラミング学習サービス「独学エンジニア」にてDockerについて学び始めました(^o^)
講義内容とほとんど同じになりますが、備忘録も兼ねて自分なりにまとめていきたいと思います。
今回の内容は前回投稿した記事の続きになりますので、前回の内容を見たい方がいらっしゃいましたらPart1よりご覧ください。
docker_logo_icon.png

(内容と関係ないけどDockerのクジラのアイコン、健気にコンテナ運んでるの可愛くて結構好き、、、)

2.Dockerの基本操作

(1) コンテナのポートを公開する

コンテナ起動後、ブラウザからコンテナにリクエストを送り、Webページを開きたいとします。
しかし、コンテナは外部からの影響受けずに1つの独立した仮想マシンとして振る舞えるようにしているため、ネットワークは独立し、外部に対して閉じています。このままではリクエストをコンテナが受け取れません(-_-;)

コンテナ(3).jpg

そこで外部からコンテナと通信するには、コンテナのポート番号をホストに対して公開し、ホストへの特定ポート番号への通信をコンテナの公開したポート番号へマッピングすることが解決法となります。

コマンドは「docker container run」コマンド実行時に、「-p」オプションを付けます。
(余談ですが、最初の頃は「-p」がポート(port)の頭文字だと思っていましたが、公開する(publish)の頭文字でした、、、!!)

コンテナのポートをホストに公開する
# ホストのポート番号9999とコンテナのポート番号80をマッピングする
$ docker container run -p 9999:80 myapache:latest

ポート番号とは?
一言で表すと、「どのアプリケーション宛の通信なのかを指定する番号」
よく例えられるのは、マンションの部屋番号ですね!
マンションの住所だけでは郵便物をどこに届けたらいいか分からないけど、部屋番号まであれば届けられる(^^)
下記は代表的なポート番号です。

ポート番号 アプリケーション・サービス
ポート80  HTTP通信(クライアントとサーバー間で使用される通信)
ポート443 HTTPS通信(HTTP通信を暗号化した通信)
ポート143 IMAP通信(メールサーバ上で電子メールを閲覧する)

(2) ログを確認する

コンテナ内に記録されているログの確認方法です。
コンテナ周りで問題が起きた場合にログを確認することがあるので、その際に使用します。

docker container logsコマンド
# 書式: docker container logs [オプション] コンテナ
$ docker container logs apache

(3) コンテナでコマンドを実行する

コンテナ内でコマンドを実行したいときに以下のコマンドを使用します。
bash等のシェルを起動させて、コンテナから抜けずにコンテナ内で操作を続けたい場合は、「-it」オプションを付けることで可能になります。

docker container execコマンド
# 書式: docker container exec [オプション] コンテナ コマンド [引数]
$ docker container exec apache ls /

# -itオプション
# 標準出力とターミナルをアタッチする(interactive,tty) → シェルを終了させない
$ docker container exec -it apache /bin/bash

(4) コンテナを停止・削除する

起動中のコンテナはいきなり削除できないため、コンテナの停止 → コンテナの削除
と段階踏んで、削除する必要があります。

コンテナ(4).png

これは「間違えてコンテナを消してしまった」などのヒューマンエラーを防止するためにあるのでしょう(^o^)
しかし、起動中のコンテナを強制削除するオプション「-f」も用意されています。

  • コンテナを停止する
docker container stopコマンド
# 書式: docker container stop [オプション] コンテナ
$ docker container stop apache 
  • コンテナを削除する
docker container rmコマンド
# 書式: docker container rm [オプション] コンテナ
$ docker container rm apache 

# 起動中のコンテナを強制削除する
$ docker container rm -f apache

(5) イメージを削除する

イメージやコンテナはずっと残っているとPCの容量を圧迫するので、必要がなくなれば削除するようにしましょう。

docker image rmコマンド
# 書式: docker image rm [オプション] イメージ
$ docker image rm practice/apache 

3.おわりに

最後まで見ていただき、ありがとうございました!
自分でイメージ図を作成しながらまとめることで、視覚的に理解でき、より理解が深まったと思います(^^)
次回は、イメージの基となる「Dockerfileの書き方について」まとめることができればと思います!

4.参考資料

  • 独学エンジニア(Lesson34参照)
    独学エンジニアとても分かりやすく、記事の内容は講義内容を参考に作成しております。
    月額約1,000円で非常にオススメです!
8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3