これは何?
Dockerのコマンドを列挙する。
コマンド
Dockerfileサンプル
FROM ros:kinetic
# install ros tutorials packages
RUN apt-get update && apt-get install -y
RUN apt-get install -y ros-kinetic-ros-tutorials \
ros-kinetic-common-tutorials \
emacs \
&& rm -rf /var/lib/apt/lists/
コンテナbuild
$ docker build --tag ros:ros-tutorials .;
Dockerfileを指定する。
$ docker build --tag ros:ros-tutorials -f Dockerfile_hoge;
コンテナ起動
$ docker run -it [IMAGE ID];
PortをExpose(-p 8080:80
)、バックグラウンドで起動(-d
)
$ docker run --name some-nginx -d -p 8080:8080 [IMAGE名]
コンテナの停止
起動しているコンテナ上で exit
$ docker stop [IMAGE ID];
全コンテナの停止
$ docker stop $(docker ps -a -q)
# 全コンテナ削除(!!危険!!)
$ docker rm $(docker ps -a -q)
停止しているコンテナをリストする
$ docker ps -a;
停止したコンテナIDか名前を確認し、起動後コンテナに入る(コマンドに復帰)
$ docker start [コンテナID or 名前];
$ docker attach [コンテナID or 名前];
shellに入る
$ docker exec -i -t [コンテナ名] bash
コンテナとのファイルのやりとり
to コンテナ
$ docker cp /tmp/hoge2 container_test1:/tmp/hoge2
from コンテナ
# docker cp [オプション] コンテナ:パス ローカル・パス|-
$ docker cp container_test1:/tmp/hoge2 /tmp/hoge2
容量不足と言われたら
cleanup (Remove unused volumes using "rm", "prune" and Remove Network)
$ docker volume rm $(docker volume ls -qf dangling=true);
$ docker volume prune -f;
$ docker network prune -f;
List dangling volumes
$ docker volume ls -qf dangling=true;
List all volumes
$ docker volume ls;
Delete all of images
$ for id in $(docker images | grep '^<none>' | awk '{print $3}'); do docker rmi ${id}; done;
$ docker rmi $(docker images -q);
Remove containers
$ docker rm $(docker ps -aq);
Clean up dangling images
$ docker image prune; # [-af if you want to force remove all images]
ザザっと消す
※ 必要なイメージ、コンテナも削除される可能性もあるので注意が必要
$ docker volume prune
$ docker image prune -a
$ docker builder prune
docker-composeのサンプル
version: '2'
services:
master:
build: .
container_name: master
command:
- roscore
talker:
build: .
container_name: talker
environment:
- "ROS_HOSTNAME=talker"
- "ROS_MASTER_URI=http://master:11311"
command: rosrun roscpp_tutorials talker
listener:
build: .
container_name: listener
environment:
- "ROS_HOSTNAME=listener"
- "ROS_MASTER_URI=http://master:11311"
command: rosrun roscpp_tutorials listener
実行
$ docker-compose up;
Dockerfileの変更を反映する。
$ docker-compose up --build;
削除。
$ docker-compose rm -v