-
Q. docker とは?
A. ユーザー視点で言えば超軽量な VM みたいなものだという理解でいったんOK。(プロセス単位で仮想化したもの) -
Q. docker のなにが嬉しいの?
A. ソースコードだけでなく開発環境も共有できるところ。また、環境がよごれなくてすむのも嬉しいところの一つ。 -
Q. docker-compose って?
A. docker での環境構築をさらに容易にしてくれるもの。docker を使う上で本質的にはなくてもいいやつ。utility だと思ってもよい。
docker-compose.yml というファイルに設定さえ書いてしまえば、「docker-compose up 叩いといてー」で環境構築が終わるのが cool 。
特に(1ホスト上で)複数コンテナを立ち上げる時に便利。
(余談:複数ホストでまたがってコンテナを管理したくなった時に使うのがコンテナオーケストレーションツール。kubernetes がデファクトスタンダード。k8s と略す。)( Docker Compose入門 (2) ~ウェブサーバの開発環境を作るための準備~ より引用。
コンテナを複数扱うとなると docker-compose なしにやってられない。) -
インストール方法 はこちら: (Docker Desktop に Docker Engine と Docker compose が入ってる)
- Mac
- Docker Desktop for Mac をインストールするのが無難。
- https://matsuand.github.io/docs.docker.jp.onthefly/docker-for-mac/install/
- Windows
- WSL2 を インストールした上で Docker Desktop for Windows をインストールするのが無難。
- https://matsuand.github.io/docs.docker.jp.onthefly/docker-for-windows/install/
- 参考(古くなったらごめんなさい):
- Mac
(docker に限った話ではないですが)
コマンドをいくつか叩いてみると docker を理解した気分になれると思います。
docker の流れは ↑ こんな感じ。(『プログラマのためのDocker教科書』より引用)
以下補足。
-
Docker イメージ というのがあり、これが言ってみれば "環境(Dockerコンテナ)のもと" となるもの。
DockerHub というところに様々な Dockerイメージがあげられている。
( git管理されたファイルをおいておくのが GitHub, Dockerイメージをおいておくのが DockerHub。) -
図にあるように、
docker create Dockerイメージ名
というコマンドで Docker イメージから Dockerコンテナ を作れる。
(このコマンドをたたいた時にローカルに Dockerイメージがなければ DockerHub からダウンロードしてくれる。) -
コンテナの一覧は
docker ps -a
で確認できる。コンテナのステータス確認もこのコマンドでやる。
(-a
オプションですべてのコンテナを表示。つけなkれば稼働中のコンテナのみ表示)
(コンテナのステータスは、restarting
,running
,paused
,exited
のいずれか。) -
docker start コンテナid
でコンテナを起動することができる。コンテナid はdocker ps -a
で確認。 -
図にあるように、
docker create Dockerイメージ名
+docker start コンテナid
を毎回やるのは面倒なのでショートカットが用意されており、それがdocker run Dockerイメージ名
。
例えば、docker run ubuntu:latest /bin/echo 'Hello world'
などとコマンドをたたくと、 「Ubuntu の latest ヴァージョンの Docker イメージをもとにコンテナを作り、そのコンテナを起動し、起動した コンテナの Ubuntu 上でecho 'Hello World'
を実行する」ということが行われる。 -
-it オプションをつけて、
docker run -it ubuntu:latest
などとやると、対話的に実行できる。 -
コンテナを停止する時は、
docker stop コンテナid
でやる。 -
docker rm コンテナid
でコンテナを削除できる。 -
docker images
でローカルにある Dockerイメージの一覧を確認でき、いらないものはdocker rmi イメージ名
で削除できる。 (dockerイメージはファイル容量が数GBのものもしばしばあるので容量が気になるようであれば定期的に掃除するとよい)
- https://knowledge.sakura.ad.jp/13265/ さくらインターネットによる入門資料。コマンドをたたきながら理解できる。
- https://knowledge.sakura.ad.jp/21387/ 同上。docker compose 編。docker の説明が非常にわかりやすい。
" このように、特別な状態のプロセスを「コンテナ」と呼び、このコンテナを実行する元になるファイルや関連情報(メタ情報)を、Dockerイメージと呼びます。そして、このDockerイメージは、Docker Hubなどのイメージ・レジストリ(保管庫の意味)を通して、コマンド1つで簡単に送受信できるようにします。 " - 『プログラマのためのDocker教科書』 の3章を読んでまずは操作的に理解し、しくみがしりたかったらさらに 2章を読む。
- 『イラストでわかるDockerとKubernetes』 (本屋で立ち読みしただけですが、よさそうでした)