基本形
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
参考文献
- 図解!dockerのツボとコツがゼッタイにわかる本(秀和システム)