はじめに
こんにちは!ITスクールRareTECHでCS(Customer Support)を担当している池村です!
今回の記事はDockerの基本③の解説記事になります。シリーズものですので、まず先に①と②を見ていただけますと幸いです。
※Dockerを初めて触る人向けの記事になります。
前回の復習
前回はexec
コマンドでコンテナの中に入って色々中を触ってみました。
docker exec -it コンテナID or コンテナ名 /bin/bash
※コンテナのイメージによっては/bin/sh
になります。
今回の記事のコマンドでは、実際にコンテナの中に入ってそのコンテナの情報をイメージとして保存する。といったことをするので、exec
に慣れていない人は前の記事で復習してください。
そろそろdocker
と打つのも面倒になってませんか?
aliasに登録して打つコマンドの文字数は減らしていきましょう。
alias d="docker"
これでd
と打てばシェルはdocker
と打ち込まれたと判断してくれます。今回の記事で書かれるコマンドは基本的にdocker
と書いていきます。
aliasの設定方法は以下の記事を参照してください。
ではコマンドの学習に入っていきましょう。
commit
(コンテナをイメージ化して保存)
さて、コンテナの中を色々いじったら、次にコンテナをイメージ化して自分オリジナルのイメージを作ってみましょう。
今回はUbuntuの中に各種便利コマンドをインストールして、その状態でイメージを作成してみます。
docker run -it ubuntu
起動をしたら、コンテナの中に入ったと思います。
では以下の順番でコマンドを叩いてみましょう。
apt update
apt install -y fzf tmux tree zsh
-y
はインストール時に求められる確認を全てYesで返答するものです。
これで必要なツールがインストールされたので、exit
でコンテナから出てください。
次からがcommit
コマンドを使うところですね。
docker commit コンテナID 好きな名前
今回私はこんな形で実行しました。👇my_ubuntu
という名前で、タグも一応つけておきました。タグをつけるには:
をつけてお好きなタグ名をつけてください。
docker commit b3 my_ubuntu:0.1
b3
は私の環境上でのコンテナIDなので、ハンズオンをする際はご自分のコンテナIDをdocker ps -a
で確認をお願いします。
images
で確認してみましょう。ご自身で作成したイメージがあると思います。
では次に自作したイメージを元にしたコンテナを立ち上げてみましょう。
docker run -it 自作したイメージの名前
docker run -it my_ubuntu:0.1
これでコンテナが立ち上がったと思います。
zsh
これで無事zsh
が立ち上がっているなら問題なく、イメージをコンテナ化できました。
基本的にコンテナは削除した場合、コンテナ内でインストールしたものは消えてしまいます。(当たり前ですが)永続化したい場合、イメージとして作成する必要があります。(Dockerfileの件は置いておいて)
rmi
(イメージの削除)
もう使わないイメージ類は消してしまいましょう。
今回はpull
してきたUbuntuのイメージを削除してみます。
docker rmi イメージ名またはイメージID
docker rmi ubuntu
もちろん複数指定もできます。
docker rmi イメージID1 イメージID2
現在稼働中のコンテナで使われているイメージは削除できません。stop
➡︎rm
してから消してください。
prune
(まとめて)
一個一個削除するのは大変なので、まとめて削除を行うこともできます。まずはコンテナを一括削除する方法を見ていきましょう。
コンテナの一括削除
docker container purne
コンテナが停止していることが大前提です。
イメージの一括削除
docker image prune
もちろん稼働しているコンテナに紐づくイメージは消せません。
その他のprune
で消せるもの
Dockerにはネットワークとボリュームという仕組みもあります。これももちろんprune
コマンドで一括削除が可能です。ここまでのDockerの記事でネットワークとボリュームの話は出てきていないので、今回は割愛します。
もちろん次回の記事では説明します。
もう全てを一括削除
もちろん、まとめて吹き飛ばすコマンドもあります。
docker system prune
上記を使うと、コンテナ、イメージ、ボリューム、ネットワーク、使われていない全てのリソースが消えてしまいます。
使い方に注意です。気をつけて使用してください。(確認メッセージが出る仕様ですが、無視するオプションもあります。興味があったら調べてみてください)
おわりに
ここまでの3つの記事で、コンテナの基本コマンドは使うことができるようになったと思います。この後はボリュームとネットワークの記事を執筆する予定です。次回も良かったら見ていただけたら嬉しいです。
次の記事👇
余談
何事も習慣化するには3週間はかかる、というのはよく聞きますよね。私は今この記事を書いた時点でまだ1週間目です。一旦記事を書くことを習慣化したく書き始めましたが、世の中の何百本も記事を書いている人には頭が上がりません(笑)バケモノたちがたくさんいるなぁ〜と改めてIT業界の優秀な人達に脱帽です。