Dockerで利用するコマンド例
使っているときは、こんなの覚えているし(笑) と思っていたんですが、3か月使わなくなって忘れてしまったので、メモ帳から取り出します。
docker ps # sizeも表示する場合 docker ps -s
docker-compose ps
docker exec -it [container id] [command] # ユーザーを指定 docker exec -it --user [desired_user] [container id] [command]
# 起動していない場合 docker-compose run [container name] [command] # すでに起動している場合 docker-compose exec [container name] [command]
docker run -it --rm alpine:3.3 /bin/sh docker run -it --rm centos:7 /bin/bash docker run -it --rm ubuntu:14.04 /bin/bash
docker cp [container id]:[コンテナ内のfile path(コピー元)] [hostのfile path(コピー先)]
# bash, zsh docker stop $(docker ps -a -q) # fish docker stop (docker ps -a -q)
docker rmi `docker images -q` docker rm -f `docker ps -a -q` # fish docker rm -f (docker ps -a -q)
# bash docker rmi $(docker images -f "dangling=true" -q) # fish docker rmi (docker images -f "dangling=true" -q) docker images | awk '/<none/{print $3}' | xargs docker rmi
docker-compose stop docker-compose rm
開発環境で、MySQLとかのバックアップ撮っておきたいなというとき。
現在いるディレクトリをサクッとコンテナにマウントして検証したいとき。
docker run -v $(pwd):/work -w=/work -it [image name] [command]
docker volume create [volume name]
MySQL 5.7を使ってたときに一瞬ハマったやつ
docker cp <containerId>:/file/path/within/container /host/path/target
docker-composeを使っている場合
開発時はdirenvを利用することをオススメします。
https://docs.docker.com/engine/reference/commandline/ps/#filtering
# NAME CONTAINER_ID IMAGE docker ps --format "table {{.Names}}\t{{.ID}}\t{{.Image}}" # NAME CONTAINER_ID IP docker inspect --format '{{ .NetworkSettings.IPAddress }}' [CONTAINER NAME] # NAME CONTAINER_ID IMAGE docker ps --format "table {{.Names}}\t{{.ID}}\t{{.Image}}\t{{.Networks}}\t"
$ docker inspect -f '{{.State.Pid}}' [container_name_or_id]