dockerメモ

各種操作

イメージの取得

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

例)

docker pull centos:centos7
docker pull amazonlinux:2

コンテナの削除

docker rm コンテナID

イメージのビルド

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

イメージの確認

docker image

イメージの削除

docker rmi イメージID

コンテナの起動

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

コンテナをデーモン起動

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 ps

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

docker ps -a

コンテナを停止

docker container stop コンテナID

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

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

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

イメージをビルドする

ここではサンプルとして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

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS