LoginSignup
3

Dockerのコマンド

Last updated at Posted at 2019-08-07

これは何?

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

Reference

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3