職場では備忘録作っていたので、プライベート用に
殴り書きなので間違っているかも知れぬ。
○イメージ関連の操作
イメージの一覧の確認
# docker images
Docker Hubからイメージのpull
# docker pull <リポジトリ>:<タグ>
centOS8のイメージが欲しけりゃ、リポジトリがcentos、タグが8で「centos:8」とする。
既存コンテナからイメージの作成
# docker commit <コンテナ> <リポジトリ>:<タグ>
イメージの削除
# docker rmi <リポジトリ>:<タグ> or <イメージID>
Dockerfileからイメージを作成する
Dockerfile
FROM centos:8
RUN dnf update
RUN dnf install -y openssh-server openssh-clients
EXPOSE 22
# docker build -t <リポジトリ>:<タグ> <Dockerfileのあるディレクトリ>
○コンテナの操作
コンテナの一覧
起動しているコンテナの一覧
# docker ps
全てのコンテナの一覧
# docker ps -a
イメージからコンテナを作成
# docker run -d --name <作成するコンテナ名> <リポジトリ>:<タグ>
個人的によく使うオプション
-i コンテナの STDIN にアタッチ
-t 疑似ターミナルの割り当て
-d コンテナをバックグラウンドで実行し、コンテナ ID を表示
-p ポートの公開
-e 環境変数の設定
--name コンテナ名
--priviledged 拡張権限の付与
-v [localのパス]:[マウント先のパス] コンテナにマウントする
※コンテナでデーモンを使用する場合は起動シェルに「/sbin/init」を指定する。
# docker run --privileged -d --name test centos:8 /sbin/init
コンテナの起動
# docker exec -it <コンテナ> /bin/bash
コンテナをbashで起動する
オプション
-i アタッチしていなくても STDIN をオープンにし続ける
-t 擬似ターミナルの割り当て
コンテナの起動・停止
起動
# docker start <コンテナ名>
停止
#docker stop <コンテナ名>
コンテナの削除
# docker rm <コンテナ名>
コンテナが停止していないと消せない。
起動しているものを消す場合は「-f」オプションをつければ、強制的に削除できる。