Code Day's Night

ichikawayのブログ

dockerコマンドでよく使うもの amazonlinuxベース

普段はdocker-composeで操作していても、たまに使い捨てコンテナを扱いたい時がある。
そんな時にdockerコマンドだけで済ませる方法。
dockerイメージの作成、コンテナ起動、コンテナのシェル操作、コンテナ削除の説明。

Dockerfile

amazonlinuxの最新を取得して、最低限のコマンドを入れる

FROM amazonlinux:latest

RUN yum update -y && yum install -y \
less \
procps \
net-tools 

build

Dockerfileを置いて、それを元にタグ名 ichi/awslinux を起動

docker build -t ichi/awslinux:1.0 .

コンテナ起動

nameオプションでコンテナの名前をつける。 最後にプロセスが終了しないようにtail -fを使ってコンテナを起動し続ける。

docker run -d --name ichi-awstest ichi/awslinux:1.0  tail -f /dev/null

docker ps

動いているコンテナを表示するには、 docker ps を使う。
ビルドして動作していない、もしくは動作終了したコンテナまで表示するには docker ps -a を使う。

コンテナにログイン

コンテナ名を指定してbashを起動する。これでコンテナの中のシェルが操作できる。

docker exec -it ichi-awstest bash

コンテナ削除

コンテナを停止し、docker rmでコンテナ削除。 image rmでビルドしたイメージを削除。

docker stop ichi-awstest
docker rm ichi-awstest
docker images
docker image rm ichi/awslinux:1.0

終了済みコンテナの削除

docker rm `docker ps -a -q --filter 'status=exited'`

イメージ名で削除(この例ではeclipse-testイメージ)
docker rm `docker ps -a -q --filter ancestor=eclipse-test`

https://docs.docker.jp/engine/reference/commandline/ps.html

Dockerfileを使わない場合

docker pull node:8.9.4-alpine

docker run -d --name node-alpine -it node:8.9.4-alpine

上記--nameでコンテナ名を指定していない場合は自動で付与されるため
docker ps のNAMESにある名前を使う

docker exec -it node-alpine /bin/sh