yuuho.wiki

カオスの欠片を集めて知恵の泉を作る

ユーザ用ツール

サイト用ツール


tips:docker:start

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
tips:docker:start [2023/08/31 06:10] yuuhotips:docker:start [2025/02/27 21:25] (現在) – [volume] yuuho
行 2: 行 2:
  
 ===== Docker ===== ===== Docker =====
 +
 +==== install ====
 +
 +<code bash>
 +sudo mkdir -p /etc/apt/keyrings
 +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
 +echo \
 +  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
 +  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 +sudo apt update
 +sudo apt install docker-ce
 +</code>
  
 | ''docker run'' | ''-it'' |  | | ''docker run'' | ''-it'' |  |
  
-  * イメージ名,タグの変更 +==== イメージ ==== 
-    * <code bash>docker tag old_name:tag new_name:tag</code> 元のイメージは消去されない.+ 
 +=== イメージ名,タグの変更 === 
 +  * <code bash>docker tag old_name:tag new_name:tag</code> 元のイメージは消去されない.
  
 === イメージ 書き出し/読み込み === === イメージ 書き出し/読み込み ===
 +gzip 使うとき
 <code bash>docker save hoge/fuga:piyo > hoge_fuga_piyo.tar</code> <code bash>docker save hoge/fuga:piyo > hoge_fuga_piyo.tar</code>
 <code bash>docker load < hoge_fuga_piyo.tar</code> <code bash>docker load < hoge_fuga_piyo.tar</code>
 +
 +gzip 使わないとき
 +<code bash>docker save hoge/fuga:piyo | gzip -c > hoge_fuga_piyo.tar.gz</code>
 +<code bash>docker load < hoge_fuga_piyo.tar.gz</code>
 +
 +
 +=== dangling なイメージの削除 ===
 +
 +最近は複雑なフィルタやコマンドライン変数など使わずにできるようになった。
 +
 +<code bash>docker image prune</code>
 +
 +==== volume ====
  
 === 無名 volume の確認 === === 無名 volume の確認 ===
行 59: 行 87:
  
 === 稼働中コンテナに入る === === 稼働中コンテナに入る ===
 +ログイン(login) する。
 <code bash> <code bash>
 docker exec -it CONTAINER_ID /bin/bash docker exec -it CONTAINER_ID /bin/bash
 </code> </code>
 +
 +==== rootless Docker ====
 +
 +=== イメージ保存場所の変更 ===
 +
 +''~/.config/docker/daemon.json'' を変更するべし。 rootfull ならたぶん ''/etc/docker/daemon.json''
 +
 +v23未満
 +<code javascript>
 +{
 +  "graph": "/mnt/extra/docker"
 +}
 +</code>
 +
 +v23以降
 +<code javascript>
 +{
 +  "data-root": "/mnt/extra/docker"
 +}
 +</code>
 +
 +編集したら設定を反映。
 +<code bash>systemctl --user restart docker</code>
 +
 +<code bash>docker info | grep "Docker Root Dir"</code> で確認。
 +''/home/USER/.local/share/docker'' から切り替わっていたらOK。
 +
 +
 +
 +===== docker-compose =====
 +
 +=== yaml ファイルの検証 ===
 +
 +''docker compose config''
 +
 +
 ===== podman ===== ===== podman =====
 podman は docker(moby) みたいにコンテナ動かすやつ。dockerコマンドを単純に podman に置き換えるだけで使えるようにしているっぽい。 podman は docker(moby) みたいにコンテナ動かすやつ。dockerコマンドを単純に podman に置き換えるだけで使えるようにしているっぽい。
行 175: 行 240:
 ''devcontainer.json'' で userns 設定をするっぽい。 ''devcontainer.json'' で userns 設定をするっぽい。
 もしかしたら nvidia と一緒にはできないかも。 もしかしたら nvidia と一緒にはできないかも。
 +
 +
 +===== DevContainer =====
 +
 +gitリポジトリにおいて、①VSCodeとdevcontainerで環境を使う場合、②docker-composeだけで環境を使用する場合、の2つのやり方を実現したい。
 +
 +以下のようなディレクトリ構成にするのが良い。
 +<code>
 +- /
 +    - docker-compose.yaml
 +    - Makefile
 +    - .devcontainer/
 +        - devcontainer.json
 +        - docker-compose.yaml   : devcontainer特有のcompose設定
 +</code>
 +
 +''devcontainer.json'' には次のように書けば良い。
 +
 +<code javascript .devcontainer/devcontainer.json>
 +{
 +    "dockerComposeFile": ["../docker-compose.yaml", "docker-compose.yaml"],
 +    "service": "CONTAINER_SERVICE_NAME",
 +    "workspaceFolder": "/workspaces/GIT_REPOSITORY_NAME",
 +    "postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
 +}
 +</code>
 +
 +=== tips: composeのオーバーライド ===
 +''docker-compose.override.yaml'' というファイルを作ると自動的にオーバーライドするような仕組みが存在している(ドキュメントには書かれていない?)
 +
 +composeファイルを結合するとき、同名の辞書があると要素を追加するような形で結合される。つまり、すでにあった要素は消されない。
 +明示的に消したい場合、たとえば <code>ports: !reset[]</code> と書くことで消去することができるらしい。
  
tips/docker/start.1693462203.txt.gz · 最終更新: 2023/08/31 06:10 by yuuho