はじめに
Windows10
Docker Desktop
Dockerについて
仮想環境はDockerのコンテナ上に作成します。
はじめに プログラミングを行う際に実行環境を構築する必要がありますが、普段利用しているローカルPCに直接インストールしてしまっては、トライアンドエラーを繰り返すうちに不要なアプリケーションが積み重なり動作が不安定にな[…]
はじめに Windows環境でLinuxのコマンドが利用できるWSL2についてインストールおよび利用方法を説明します。 Linuxコマンドが使えるようになると、様々なプログラミング言語や開発に利用できますので非常に[…]
Docker imageのダウンロード
様々なイメージが登録されているDocker Hubから取得したいタグを確認します。
タグは[REPOSITORY:TAG]の形式です。
docker pull python:latest #python動作環境のうち最新バージョンを取得
docker pull ubuntu:22.10 #バージョンを指定して取得
ダウンロードしたimageの確認
以下のコマンドでダウンロード済みのイメージをリスト表示できます。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 22.10 0f175c10c2b4 13 hours ago 70.2MB
python latest f05c8762fe15 11 days ago 921MB
ダウンロードした際のリポジトリとタグについても表示されています。
IMAGE IDはこの後も利用する場面があります。
コンテナ起動
ダウンロードしたイメージから実際に動作する仮想環境であるコンテナを起動します。
docker run -it --name ubuntutes ubuntu:22.10 /bin/bash
root@f8f24cde7491:/#
docker run :コンテナの起動ができます。
-it:-iオプションと-tオプションを同時に指定しています。-iはコンテナの標準入力で開きます。-tは端末デバイスで開きます。
今はおまじないとして-itをつければよいです。
–name [name] :で起動したコンテナに任意の名前を付けることができます。
今回はubuntutesと名付けています。
ubuntu:22.10 :はダウンロードしたイメージのリポジトリとタグを指定します。
/bin/bash:コンテナ起動時にフォアグランドで実行するコマンドを指定します。ここで指定することでbashが起動しています。
コンテナを起動後にユーザー名とコンテナIDで起動していることがわかります。
f8f24cde7491がコンテナIDでrootがユーザー名となっており、ubuntuが利用可能な状態となっています。
コンテナを終了せずに抜ける
docker runすることでコンテナを利用可能となりましたが、元のpowershellに戻るためにはCtrl+p, Ctrl+q を入力するとOKです。
起動したコンテナはバックグラウンドで起動したままとなります。
起動中のコンテナを確認
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f8f24cde7491 ubuntu:22.10 "/bin/bash" 47 minutes ago Up 47 minutes ubuntutes
先ほど、コンテナを終了せずにpowershellに戻ったので、動作中のコンテナに「ubuntutes」が表示されます。
起動中のコンテナに接続(Attach)
先ほど起動したコンテナに再度接続します。
docker attach f8f24cde7491
root@f8f24cde7491:/#
docker attach [コンテナID]の形式で入力します。
コンテナの終了
起動中のコンテナを終了させるためのコマンドです。
exit
exit
exitコマンドを実行することでコンテナを終了してpowershellに操作が戻ります。
起動中のコンテナを確認すると表示されないのが確認できます。
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
すべてのコンテナを確認
終了したコンテナも含めて確認したい場合は以下を実行します。
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f8f24cde7491 ubuntu:22.10 "/bin/bash" About an hour ago Exited (127) 6 minutes ago ubuntutes
-aオプションをつけることで起動状況に関わらずすべてのコンテナをリスト表示します。
コンテナの削除
コンテナを削除するには以下のコマンドを実行します。
docker rm f8f24cde7491
f8f24cde7491
削除した結果を確認します。
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
イメージの削除
ダウンロードしたイメージ自体を削除するためのコマンドです。
docker rmi ubuntu:22.10
Untagged: ubuntu:22.10
Untagged: ubuntu@sha256:4f9ec2c0aa321966bfe625bc485aa1d6e96549679cfdf98bb404dfcb8e141a7f
Deleted: sha256:0f175c10c2b410262bdbcb91b176a308d15dd1f77a80f00b8488fe84a9cabf7e
Deleted: sha256:cd1929199a9a438b8f7d1976e6bb71188958e173b12fb59d3168162251ddb3f4
イメージが削除されていることが確認できます。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
python latest f05c8762fe15 11 days ago 921MB
終了したコンテナの再起動
まずは、コンテナの起動状況を確認します。
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
46f2ce700ab6 ubuntu:22.10 "/bin/bash" 2 minutes ago Exited (0) 4 seconds ago ubuntutest
e0db2ec0d559 python:latest "/bin/bash" 2 days ago Exited (0) 47 hours ago pytest
STATUSがExitedとなっているため、コンテナが終了していることがわかります。
ubuntutestのコンテナを以下のコマンドで再起動します。
docker start -a 46f2ce700ab6
root@46f2ce700ab6:/#
フォルダの共有
コンテナ側とローカルPCのWindows側でフォルダの共有ができます。
ファイル共有を行うためには以下のコマンドで実行可能です。
docker run -it -v C:\Users\XXXX:/root/share --name ubuntutest ubuntu:22.10 /bin/bash
root@998ee0ea8e44:/#
docker runでコンテナを起動する際に-v [Windows側の共有するパス]:[コンテナ側のマウントするパス] のオプションを追加することでフォルダ共有をすることができます。
まとめ
出版社:技術評論社
出版社:日経BP
出版社:インプレス