はじめに
自分用にチートシートっぽく書いています(勉強中なので間違った情報が記載されているかもしれません)。
随時追記するかも。。
ビルド
Dockerfileがある階層で実行
→ イメージが作成される
% docker build .
ビルド(Name&Tag付き)
% docker build -t {Name}:{Tag} .
コンテナ情報一覧(起動コンテナ)
% docker ps
コンテナ情報一覧(すべてのコンテナ)
% docker ps -a
コンテナを作成+起動
% docker run {コンテナ名}
コンテナ起動
作成済みのコンテナを起動する
% docker start {コンテナ名}
コンテナ作成+起動(名前付き)
% docker run --name {名前} {イメージ名}
コンテナ停止
% docker stop {コンテナ名}
コンテナ削除
コンテナが停止していないと削除できない
% docker rm {コンテナ名}
イメージ情報一覧
% docker images
イメージの詳細取得
% docker image inspect {IMAGE_ID}
イメージ削除
% docker rmi {IMAGE_ID}
イメージ削除(使用されていないイメージの削除)
一括で削除される
% docker image prune
イメージIDからコンテナ起動→停止時にコンテナ削除
コンテナを停止する際に、自動的にコンテナの削除を行なってくれる
% docker run --rm {IMAGE_ID}
コンテナにファイル(フォルダー)を追加
% docker cp {追加したいファイル名} {コンテナ名}:{保存先ディレクトリー}
コンテナから特定のファイル(フォルダー)を取得
% docker cp {コンテナ名}:{取得したいファイルのディレクトリー} {対象ファイル名}
イメージのName,Tag修正
!修正前のイメージは残る!
% docker tag {既存のName}:{既存のTag} {修正後のName}:{修正後のTag}
ボリューム一覧
% docker volume ls
ボリューム削除
% docker volume rm {ボリューム名}
Docker Hub編
Docker Hubへpush・pullを行う。
予めアカウントを作成して、リポジトリを作成する(以下のコマンドの挙動確認を行うのにはFree版でOK)。
push
pushしたいイメージの{REPOSITORY名}をDocker Hub側で作成したユーザー名とリポジトリ名で合わせる必要がある
例えば、作成したユーザー名がtaro
でリポジトリ名がtest-repo
の場合はpushするイメージの{REPOSITORY名}はtaro/test-repo
である必要がある。
% docker login
% docker push {ユーザー名}/{リポジトリ名}
pull
デフォルトでlatestがpullされる
% docker pull {ユーザー名}/{リポジトリ名}