コンテナ技術(Docker)についてこれから追いつくにあたって、参考になるものを記述しました。
最初に読むべきもの
・コンテナについて最初に読んでおくといいもの
初心者のためのコンテナ入門教室(https://thinkit.co.jp/article/17211)
(第3回目までを始めに読むことを推奨します。)
・チュートリアルをやってみる
Get started | Docker Docs(https://docs.docker.com/get-started/)
このあたりをやると、自分で手を動かすことができるようになります。
DockerHubのアカウントを作成すること、DockerとDocker Composeがわかるようになることがファーストステップです。
チュートリアルだけでは私が理解できなかったものを補足します。
NGINXを使ってみる
NGINX ドッカーの公式イメージの使用方法(https://www.docker.com/ja-jp/blog/how-to-use-the-official-nginx-docker-image)を参考に、手順を追っていきます。
基本的なWebサーバの実行
docker run -it –rm -d -p 8080:80 –name web nginx
上記コマンドを実行すると、nginxが起動します。
- –rm:コンテナが停止したときに自動的に削除されます。これにより、不要な停止コンテナがシステム上に残らないようになります。
- -d:デタッチドモード(バックグラウンドモード)でコンテナを実行します。コンテナはバックグラウンドで実行され、端末には戻ってきます。
- -p 8080:80:ポートマッピングを指定します。ホストマシンのポート8080をコンテナ内のポート80にマッピングしています。
- –name web: 実行されるコンテナに
web
という名前をつけます。これにより、後でこのコンテナを名前で参照して操作(停止、削除など)できるようになります。 - nginx: 実行するDockerイメージの名前です。この場合、nginxイメージを使用してNginx Webサーバーを起動します。もしイメージがローカルに存在しない場合、Docker Hubから自動的にダウンロードされます。latestタグを持つイメージがダウンロードされます。
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker run -it –rm -d -p 8080:80 –name web nginx 実行すると、Dockerイメージが自動的にダウンロードされていることがわかります。
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 39286ab8a5e1 3 weeks ago 188MB
docker stop web
を実行して、コンテナを停止させましょう。–rmオプションがついているので、停止時にはコンテナも削除されます。
カスタムHTMLの追加
mkdir ~/site-content
cd ~/site-content
vi index.html #好きなコマンドでファイルを編集してください。
cd ..
docker run -it –rm -d -p 8080:80 –name web -v ~/site-content:/usr/share/nginx/html nginx
-vを付与して、ボリュームマウントを設定します。
作成したindex.htmlファイルをnginxのHTMLファイル配置フォルダへマウントします。
カスタム NGINX イメージの構築
index.htmlを含むイメージを作成してみます。
cd ~/site-content
vi Dockerfile
FROM nginx:latest
COPY ./index.html /usr/share/nginx/html/index.html
docker build -t webserver .
ビルド後にイメージが作成されていることがわかります。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
webserver latest b386927f18c2 46 seconds ago 188MB
nginx latest 39286ab8a5e1 4 weeks ago 188MB
実際に使っているとわからなくなるもの
DockerイメージとDockerコンテナについて
Docker imageは名前とタグが同じものは作れません。
Docker containerはイメージから複製として同じようなものを作成できます。
Docker containerは、runの際にオプションをつけないと自動では削除されないため、注意しましょう。
dockerイメージの一覧表示docker images
dockerコンテナの一覧表示docker container ls