Dockerの使い方が散らばり過ぎているので一括でまとめた

Dockerの使い方が散らばり過ぎているので一括でまとめた

Dockerの使い方、ややこしいですよね?

当然、google検索に頼ることになるのですが
使い方の項目が散らばりすぎていませんか?

ググってはqiita、ググっては(別の)qiita
作業ごとにgoogle検索を経由するのは余りにも面倒!!

かと言って「使い方まとめ」のようなページは
「Dokcerの仕組み」のような技術的すぎる話に終始していて
理解とか後回しでいいのでコマンドだけ教えて!!

という心境になりがち。

誰もまとめていないので私が使い方をまとめる事にしました。

コマンドの紹介と、解説されてるページへのリンクの紹介となります。
引用元は必ず記載しておくので、詳しい説明はそちらを参考にしてください。

サービスの起動(Cannot connect to the Docker daemonと出た場合)

systemctl start docker.service

ディストリビューションによってはコマンドが違うかもしれません。

参考:サービスの起動・停止

公式からイメージを引っ張ってくる

例えばubuntuのイメージなら

docker pull ubuntu

公式の認定Dockerイメージ一覧

下記のページにあります。
https://github.com/docker-library/official-images/tree/master/library

参考:認定Dockerイメージ一覧

Dockerイメージ一覧があるサイト(Docker Hub)

認定イメージだけでは少なすぎるので
Docker Hubも活用しましょう。

だいたいのイメージはここに揃っています。
誰が作ったイメージなのかを確認してからの利用推奨

Dockerイメージをコマンドで検索する

いちいちDocker Hubを訪問しなくても
コマンドでイメージを検索することが可能です。

docker search 検索ワード

試しに”Debian sid”で検索をしてみるとこんな感じ

参考:Docker イメージの働き

Dockerコンテナを起動する

sudo docker run -it イメージ名:タグ /bin/bash

参考:補足1 コンテナ起動時に接続する場合

コンテナの作業内容を保存。(イメージの作成)

一番大事?なコマンド

まずはCntl + p , Cntl + qで一旦コンテナを抜けて
docker ps -aで保存したいコンテナのIDをコピーしておく。

docker commit --pause=false -a "作者名" -m "コメント" 保存したいコンテナID 保存したいイメージ名:付けたいタグ

-aと-mは任意。
–pause=falseは作業内容を保存する際に
コンテナを一時停止しないようにするオプション。

参考:Dockerイメージに制作者名とコミットメッセージを設定する

コンテナとホストの間でファイルのコピーを行う

まずはCtrl+p+qで抜けて、コンテナ名を確認

docker container ls

docker cpコマンドでコピー

docker container cp コンテナ名:/path/to/target_file /コピー先/ディレクトリ

参考:コンテナ=ホスト間のファイルコピー(docker / k8s)

ホストのフォルダをマウントした状態でコンテナを起動

-vコマンドでホストとコンテナ間でのフォルダの共有が可能です。

docker run -v /ホスト/の/フォルダ:/コンテナ/の/フォルダ -it コンテナ名 bash

参考:共有フォルダを指定してDockerを作成、起動する

Dockerをroot権限(sudo)なしで利用可能にする

sudo usermod -aG docker ユーザー名

シンプルにこれだけ。

参考:dockerコマンドをsudoなしで使用するための設定

コンテナの削除

docker ps -aで削除するコンテナのIDを確認しておいて

docker rm 削除対象のID_1 削除対象のID_2

といった具合に指定して削除。

全てのコンテナを削除

docker rm `docker ps -a -q`

停止しているコンテナをすべて削除する

docker container prune

参考:コンテナの削除方法
参考:Dockerの不要なコンテナ・イメージを一括削除する方法

イメージの削除

docker imagesでIDを確認して

docker rmi -f 削除したいイメージのID

これで削除が完了

参考:イメージの削除

イメージの一括削除

docker rmi `docker images -a -q`

参考:イメージを一括削除する

コンテナの一覧を取得

docker ps -a

参考:docker psでコンテナリストを表示・取得する