Skip to main content

Docker コンテナ管理

Dockerでコンテナ管理するためのコマンド群です。

コンテナ一覧表示

起動中のコンテナ一覧を表示します。

[root@docker ~]# docker ps

停止中のコンテナも表示する場合は「-a」をつけると表示されます。

[root@docker ~]# docker ps -a

コンテナ起動

イメージからコンテナを作成し、起動させます。
コマンドを実行すると

[root@docker ~]# docker run -dit --name="{コンテナ名}" {イメージ名}:{タグ名}

また、下記のオプションを付けることにより様々な動作が指定できます。

-d
バックグラウンドでコンテナを動作させる際に指定します。
-it
/bin/bashなどでコンテナーを操作する際に指定します。
-h {ホスト名}
コンテナのホスト名を指定します。
–name=”{コンテナ名}”
コンテナにユニークな名前を指定します。
-p {ホストのポート番号}:{コンテナのポート番号}
ホストとコンテナのポートフォワーディングを指定します。
複数指定する際は、「-p {ホストのポート番号}:{コンテナのポート番号} -p {ホストのポート番号}:{コンテナのポート番号}」と複数設定。
-e {環境変数名}={値} {環境変数名}={値}
コンテナの環境変数を指定します。
-v {ホストディレクトリ}:{コンテナディレクトリ}
ホストのストレージをマウントします。
複数指定する際は、「-v {ホストディレクトリ}:{コンテナディレクトリ} -v {ホストディレクトリ}:{コンテナディレクトリ}」と複数設定。

コンテナの中へアクセス

コンテナのbashへアクセスできます。

[root@docker ~]# docker exec -it {コンテナ名|コンテナID} /bin/bash

コンテナからホストへファイルコピー

現状コンテナからホストへのコピーはできますが、その逆はできないようです。

[root@docker ~]# docker cp {コンテナ名|コンテナID}:{コンテナのファイル} {ホストのファイル}

コンテナの起動

[root@docker ~]# docker start {コンテナ名|コンテナID}

コンテナの停止

[root@docker ~]# docker stop {コンテナ名|コンテナID}

コンテナの削除

[root@docker ~]# docker rm {コンテナ名|コンテナID}

Docker イメージ管理

Dockerでイメージ管理するためのコマンド群です。

イメージ検索

Docker Hubからイメージを検索します。

[root@docker ~]# docker search centos

上記のコマンドではイメージ名しか取得できないためタグ名がほしい時は下記のコマンドで取得。

[root@docker]# curl https://registry.hub.docker.com/v1/repositories/centos/tags | python -mjson.tool 

イメージ取得

Docker Hubからイメージを取得します。
[イメージ名]:[タグ名]となっていて例ではcentosのlatest(最新バージョン)を取得しています。

[root@docker ~]# docker pull centos:latest

イメージ確認

サーバ内に保存されているイメージを確認できます。

[root@docker ~]# docker images

イメージ削除

サーバ内に保存されているイメージを削除します。

[root@docker ~]# docker rmi centos:latest

Docker v1.8.2 インストール

CentOS7でDockerの最新バージョンをインストールしてみます。(執筆時の最新バージョンはv1.8.2)

ブログの記事にはしていませんがDocker v0.8の時にCentOS6で構築したことがあるのですが
その時はまだ機能やツールなどが充実しておらず、はっきり言って業務には使えないなと思いやめてしましました。

ですがここ最近、Dockerでの導入事例を目にすることが多くなってきたので使ってみて
良ければ、古いサーバからリプレイスしていこうかなと思っています。

手順はDockerの公式サイトInstall Dockerを元に行います。

続きを読む