LoginSignup
4
2

More than 1 year has passed since last update.

Dockerコマンド チートシート

Last updated at Posted at 2020-11-27

前準備

# インストール
brew install --cask docker
# 再インストール
brew reinstall --cask docker

# ポートの使用確認
lsof -i:8080
# LISTENとして使用しているportを確認
lsof -i -P | grep "LISTEN"
# ポートの80にアクセス
curl http://localhost:80
# NginxのConfigファイルを見つける
find / -type d -name nginx | xargs grep -r html

# 使われているポートを殺す
sudo lsof -t -i tcp:8000 | xargs kill -9

イメージ

# イメージの一覧を表示
docker images
# イメージの取得
docker pull nginx
# イメージの履歴を確認する
docker history nginx
# Dockerfileをビルドしてイメージの作成
docker build -t mycontainer:first .

docker hub

# イメージ作成
docker build -t <image_name> .
# tagの設定
docker tag <IMAGE_ID> <user_name>/<image_name>:<version>
# hubにpushする
docker push <user_name>/<image_name>:<version>

コンテナ

# 作動中のコンテナ一覧表示
docker ps
# 作動中のコンテナをリアルタイムで表示
watch "docker ps"
# ヘッダを表示しない。よりスッキリした画面になる
watch -t "docker ps"
# 時間間隔指定
watch -n 1 "docker ps" 
# 停止中のコンテナもすべて表示
docker ps --all
docker ps -a
# コンテナの起動
# docker run [オプション] イメージ[:タグ|@ダイジェスト値] [コマンド] [引数...]
# -p {コンテナのポート:ホストのポート} # コンテナのポートをホスト側に公開する
docker run --name {name} -p 80:80 {REPOSITORY/TAG}
# コンテナをバックグラウンドで起動
## バックグラウンドで起動する(Detachする)ので、inputができない、outputが表示されなくなる。
docker run --name nginx -p 80:80 --detach nginx
docker run --name nginx -p 80:80 -d nginx
# コンテナを起動させ続ける
docker run --name {name} -it -p 80:80 -d {REPOSITORY/TAG}
# 作動中のコンテナを停止する
docker stop CONTAINTER_ID
# 停止中のコンテナを再起動する
docker start CONTAINTER_ID
# コンテナのログを表示する
docker logs CONTAINER_ID
# 作動中のコンテナの中にシェルで入る
## - exec
##     - Run a command in a running container
## - exec -i (--interactive)
##     - Keep STDIN open even if not attached
## - exec -t (--tty)
##     - Allocate a pseudo-TTY
## execution 実行、 interactive 対話形式、 tty テレタイプライター => terminalのこと
docker exec -it CONTAINER_ID bash
# コンテナにホストからファイルをコピー
docker run -d --volume $(pwd):/home nginx
# 公式イメージをタグ指定して、build
docker pull nginx:1.18-alpine 
# runして入る
docker run -it <コンテナ名(IDじゃだめ)> sh

# しばらくsudo
sudo -i

消去系

# Dockerが使用するシステム容量の確認
docker system df
# Build cahcheの消去
docker builder prune
# イメージの消去
docker rmi IMAGE_ID
# 使っていないイメージ,ボリューム,ネットワーク等すべてを消去する
docker system prune -a --volumes
# 止まったコンテナを消去
dokcer rm CONTAINER_ID
# 停止したコンテナを一括消去
docker container prune
# すべてのコンテナを停止
docker stop $(docker ps -aq)
# すべてのコンテナを消去
docker rm $(docker ps -aq)

docker-compose

docker-composeとdockerコマンドの対応

docker run --name nginx \
    --env="env_key=env_value" \
    -p 80:80 \
    --volume $(pwd):/usr/share/nginx/html \
    nginx
docker-compose.yml
version: "3.7"
services:
  nginx:
    image: nginx:latest
    container_name: docker_compose_nginx
    environment:
      - env_key=env_value
    ports:
      - "80:80"
    volumes:
      - ${PWD}:/usr/share/nginx/html:ro
# 起動
docker-compose --file docker-compose.yaml up
# 停止
docker-compose -f docker-compose.yaml down
# ログを監視 (followオプションでリアルタイム監視ができるようになります。)
docker-compose -f docker-compose.yaml logs --follow
# ログを見る
docker-compose logs コンテナ名
# Composeで立ち上げたコンテナにアクセスする。
docker-compose exec postgres bash

一部のコンテナだけ新しくする

docker-compose rm -fs backend
docker rmi development_backend
docker-compose up backend
4
2
0

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
4
2