目次

各種操作

イメージの取得

docker pull イメージ名[:タグ|@イメージのハッシュ値]

例)

docker pull centos:centos7
docker pull amazonlinux:2

コンテナの削除

docker rm コンテナID

イメージのビルド

docker build ./ -t イメージ名[:タグ]

イメージの確認

docker images

イメージの削除

docker rmi イメージID

コンテナの起動

docker run -it イメージ名[:タグ]

コンテナ名を指定してコンテナを起動

docker run --name コンテナ名  ...
# 例
docker run --name mysql -d mysql:latest

環境変数を指定してコンテナを起動

docker run -e 環境変数名=値
# 例
docker run -e MYSQL_ROOT_PASSWORD=root-password -d mysql:latest

コンテナをデーモン起動

docker run -d イメージ名[:タグ]

コンテナをデーモン起動しつつポートバインド

docker run -p 仮想サーバーのポート:コンテナのポート -d イメージ名[:タグ]

デーモン起動したコンテナに入る

docker exec -it コンテナID /bin/bash

起動すると同時にコンテナに入る(exitするとコンテナは終了する)

docker run -it --rm イメージID /bin/bash

例)

docker run -it --rm amazonlinux:2 /bin/bash
docker run -it --rm centos:centos7 /bin/bash

ホスト側のディレクトリをマウントして起動

docker run -v ホスト側のPATH:コンテナのPATH イメージ名ID

動作中のコンテナを確認

docker ps

停止しているコンテナを含めて確認

docker ps -a

コンテナの情報を確認

docker inspect コンテナID

コンテナを停止

docker container stop コンテナID

起動中のコンテナで任意のコマンドを実行する

わざわざコンテナに入らなくてもコマンド実行は可能。

docker exec コンテナID コマンド

コンテナからイメージを作成する

docker exec -it や docker run -it でコンテナに入って作業した状態をイメージとして残しておきたい場合は、docker commit が使用できる。
※既に停止したコンテナからイメージを作成する事も可能。

docker commit コンテナID イメージ名:タグ

ファイルコピー

# コンテナからホスト側にコピー
docker cp コンテナID:/path_to/sample.txt sample.txt

# ホスト側からコンテナにコピー
docker cp sample.txt コンテナID:/path_to/sample.txt

コンテナイメージをファイルにエクスポートする

docker export コンテナID > ファイル名

※docker のメタ情報まで保存したい場合は docker save を使用する。

ファイルからコンテナイメージを作成する

docker import ファイル - イメージ名:タグ

※docker save で保存したファイルの場合は docker load を使用する。

dockerネットワークを作成する

docker network create ネットワーク名

dockerネットワークを指定してコンテナを起動

docker run --network ネットワーク名 ...

dockerネットワークの情報を確認する

docker network inspect ネットワーク名

掃除

コンテナをきれいにする

# 停止中のコンテナを全て削除(要注意)
docker container prune

イメージををきれいにする

# どのコンテナにも参照されていないイメージを削除
docker system prune

イメージをビルドする

ここではサンプルとして1秒毎にカウント表示するシェルを起動するコンテナイメージを作成する

Dockerfile の作成

FROM amazonlinux:2
#FROM centos:centos7

USER root

RUN yum install -y which

# amazonlinux2の時
# psコマンドインストール
RUN yum -y install procps
RUN yum install -y python3

# centos7の時
# ※IUS Community Project のリポジトリを追加する(Python3系はCentOS 7の標準yumリポジトリで提供されていない)
#RUN yum install -y https://centos7.iuscommunity.org/ius-release.rpm
#RUN yum install -y python36

RUN mkdir /myapp
COPY myapp.sh /myapp/
RUN chmod 755 /myapp/*.sh

CMD ["/myapp/myapp.sh"]

アプリケーション(ここでは簡単なシェル)の作成

myapp.sh

#!/bin/bash

i=0
while [ true ]; do
    i=`expr ${i} + 1`
    echo "i = ${i}"
    sleep 1
done

イメージのビルド

docker build ./ -t myapp:latest

ビルドしたイメージの確認

docker images

ビルド中にエラーになったコンテナにログインする

ビルド中によく分からない原因でエラーになりイメージが作成できない事がある。
この場合は、エラーになったコンテナをいったんイメージ化する事によりコンテナにログインする事ができる。

対象のコンテナIDを確認 (エラーになったコンテナも残っている)

docker ps -a

対象のコンテナをイメージ化する

docker commit 対象のコンテナID イメージ名:タグ

これで、エラー時点のコンテナにログインできる。

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

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-12-17 (月) 21:58:45 (2128d)