工作と競馬2

電子工作、プログラミング、木工といった工作の記録記事、競馬に関する考察記事を掲載するブログ

Dockerコマンド自分用覚書

基本形

docker 何を どうする [引数] 具体的な名前

# 例
# hogehogeイメージをバックグラウンドで起動しコンテナIDを表示する
docker container run -d hogehoge

コンテナ表示

# 動作中のコンテナ
docker ps

# すべてのコンテナ
docker ps -a

コンテナ起動

  • runは、作成して起動。既存のコンテナと名前がかぶっていると失敗する
  • startは、既存のものを起動
# 基本形
docker container run --name コンテナ名 -d イメージ名 

コンテナ停止

docker stop コンテナ名

Docker Compose

Dockerコンテナの起動設定のこと

  • サンプル(docker-compose.yml)
version: '3'
services:
  コンテナ名:
    image: イメージ名
    ports:
      - '80:80'
  • 起動方法

使用したいdocker-compose.ymlが存在するディレクトリに移動して以下を実行

cd target
docker compose up -d

Volumes

ローカルとコンテナをつなぐ。ローカルの変更をコンテナ内に伝えられる。

version: '3'
services:
  コンテナ名:
    image: イメージ名
    ports:
      - '80:80'
    volumes:
      - ローカル側ディレクトリパス:コンテナ内ディレクトリパス

指定したコンテナでコマンド実行

  • execコマンドを使えばよい
docker compose exec コンテナ名 コマンド

# ディレクトリを表示する例
docker compose exec コンテナ名 ls -l

イメージを作成

Dockerfileを作成し、buildコマンドを実行する。第1引数は、そのファイルのあるディレクトリを指定する。-tは、イメージ名とタグ。タグは省略可能

docker build ディレクトリ -t イメージ名[:タグ]

脆弱性のスキャン

イメージを作成すると、

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them

と表示が出ることがある。このままのイメージを使ってコンテナを作成しても、実行に失敗する。そのときは、

docker scan イメージ名

実行すると、以下のようになる。

Tested 102 dependencies for known vulnerabilities, found 9 vulnerabilities.

Base Image    Vulnerabilities  Severity
ubuntu:22.04  9                0 critical, 0 high, 1 medium, 8 low

Recommendations for base image upgrade:

Minor upgrades
Base Image      Vulnerabilities  Severity
ubuntu:rolling  6                0 critical, 0 high, 1 medium, 5 low

プロキシ設定

https://stackoverflow.com/questions/46036152/lookup-registry-1-docker-io-no-such-host

Ubuntuの場合

/etc/systemd/system/dockdocker.service.d/override.conf

[Service]
Environment=HTTP_PROXY=http://1.1.1.1:111
Environment=HTTPS_PROXY=http://1.1.1.1:111


参考文献