31: 2021-08-20 (金) 23:01:52 iseki |
現: 2023-05-05 (金) 10:17:58 iseki |
| *Docker 備忘録 [#y5b36a8f] | | *Docker 備忘録 [#y5b36a8f] |
| *** see also [#i9ed634e] | | *** see also [#i9ed634e] |
- | -- [[Docker]] | + | - [[Docker]] |
- | -- [[Docker Compose]] | + | - [[Docker Compose]] |
- | -- [[Docker Network]] | + | - [[Docker Network]] |
- | -- [[Docker Swarm]] | + | - [[Docker Swarm]] |
- | -- [[Kubernetes]] | + | - [[Kubernetes]] |
| + | - [[Podman]] |
| #br | | #br |
| | | |
| # rpm -e toolbox | | # rpm -e toolbox |
| # rpm -e podman | | # rpm -e podman |
| + | # rpm -e containers-common-1-2.module_el8.5.0+890+6b136101.noarch (必要なら) |
| # rpm -e runc | | # rpm -e runc |
| # rpm -ihv containerd.io-1.2.6-3.3.el7.x86_64.rpm | | # rpm -ihv containerd.io-1.2.6-3.3.el7.x86_64.rpm |
| - Install & Getting Start へ | | - Install & Getting Start へ |
| + | #br |
| + | |
| + | **** 2023 1/17 CentOS8 の update で Docker が動かなくなったので上記の方法で入れ直し.(containerd.io が runc と競合する場合) [#hee294de] |
| + | |
| #br | | #br |
| + | |
| **** もし podman が必要なら containerd.io をインストール後に,入れ直す. [#y6d1a036] | | **** もし podman が必要なら containerd.io をインストール後に,入れ直す. [#y6d1a036] |
| # yum install podman -y | | # yum install podman -y |
| # systemctl start docker | | # systemctl start docker |
| # docker run hello-world | | # docker run hello-world |
| + | #br |
| + | |
| + | *** CentOS6 [#za65a6da] |
| + | - yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm |
| + | -- chkconfig --level 3 docker on |
| + | |
| + | - 注)ipv6 が OFF だと bridge.ko の読み込みで,シンボル(ipv6_dev_get_saddr)未定義のエラーを起こす. |
| + | -- Error starting daemon: Error initializing network controller: Error creating default \"bridge\" network: package not installed |
| + | -- NSLでは /etc/modprobe.d/dist.conf の最終行をチェック <-- ここで ipv6 を止めている. |
| #br | | #br |
| | | |
| ** Getting Start [#fedb2239] | | ** Getting Start [#fedb2239] |
- | *** CentOSを使ってみる [#e8e57f9e] | + | |
| + | *** 使ってみる [#fbf5e0d3] |
| + | |
| + | **** Hello World [#u91eb055] |
| + | # docker run hello-world |
| + | #br |
| + | |
| + | **** CentOSを使ってみる [#e8e57f9e] |
| # docker pull centos | | # docker pull centos |
| # docker images | | # docker images |
| # docker run -i -t centos /bin/bash | | # docker run -i -t centos /bin/bash |
| (DockerBash)# | | (DockerBash)# |
| + | #br |
| + | |
| + | **** CentOSを使ってみる2 [#m1ae3f38] |
| + | # docker pull centos:centos7 |
| + | # docker run -ti -d --name centos7 centos:centos7 |
| + | # docker exec -it centos7 /bin/bash |
| + | [root@fbd5aeb4046a /]# |
| + | #br |
| + | |
| + | ** [[Local Registry>./Registry]] [#jc169974] |
| #br | | #br |
| | | |
| ** コマンド [#f867895b] | | ** コマンド [#f867895b] |
| + | |
| *** 操作 [#p0316f54] | | *** 操作 [#p0316f54] |
| **** コンテナ [#o6820680] | | **** コンテナ [#o6820680] |
| -- tar 形式のイメージを標準入力から入力 | | -- tar 形式のイメージを標準入力から入力 |
| -- 例)tar -C rootfs -c . | docker load | | -- 例)tar -C rootfs -c . | docker load |
| + | #br |
| + | **** 使用していない(孤立した)リソースの削除 [#z50def7b] |
| + | - システム: docker system prune |
| + | - イメージ: docker image prune |
| + | - コンテナ: docker container prune --filter "until=24h" |
| + | - ボリューム: docker volume prune --filter "label!=keep" |
| #br | | #br |
| | | |
| ** Tips [#bc9ce347] | | ** Tips [#bc9ce347] |
| + | *** ファイル(Volume)共有 [#u078f1a8] |
| + | - volume : /var/lib/docker/volumes |
| + | -- Podman : /var/lib/containers/storage/volumes |
| + | |
| + | - DB: /var/lib/docker/volumes/metadata.db (PC毎に持つ必要がある) |
| + | -- POdman(特殊ファイル): /var/lib/containers/storage/volumes/backingFsBlockDev 特に処理する必要はない(と思う) |
| + | #br |
| + | |
| + | *** none タグのイメージの名前(表示)を消す. [#e82b979d] |
| + | - 同じ名前のタグ付きイメージ名を作成し,それを消す. |
| + | docker tag 7fe93d9d7854 jupyterhub/singleuser:del (jupyterhub/singleuser:<none> の場合) |
| + | docker rmi jupyterhub/singleuser:del |
| + | #br |
| + | - 名前も none の場合は,docker tag で指定する名前は何でもよい. |
| + | #br |
| + | |
| *** 現在の環境が Docker のコンテナなのかを確認する. [#gd6a458a] | | *** 現在の環境が Docker のコンテナなのかを確認する. [#gd6a458a] |
| - '' /.dockerenv'' の存在をチェックする. | | - '' /.dockerenv'' の存在をチェックする. |
| | | |
| ** Jupyter [#u471de3a] | | ** Jupyter [#u471de3a] |
| + | *** Docker Images [#uf21b4ef] |
| + | **** jupyterhub/singleuser [#k5b135c9] |
| + | - https://hub.docker.com/r/jupyterhub/singleuser/ |
| + | #br |
| + | |
| + | **** jupyter/datascience-notebook [#rabcf16e] |
| + | - https://hub.docker.com/r/jupyter/datascience-notebook/ |
| + | #br |
| + | |
| + | **** jupyter/tensorflow-notebook [#h63a2e3c] |
| + | - https://hub.docker.com/r/jupyter/tensorflow-notebook/ |
| + | #br |
| + | |
| + | **** rattydave/jupyterhub [#p536b876] |
| + | - C++, Java, Python, Tensorflow, Julia, SQL, NodeJS, Bash and more |
| + | - https://hub.docker.com/r/rattydave/jupyterhub |
| + | - 重い(10G).非力マシンではタイムアウト(30s)する. |
| + | #br |
| + | |
| + | **** joequant/bitstation:latest [#m40761fc] |
| + | - C++ |
| + | - https://hub.docker.com/r/joequant/bitstation/tags?page=1&ordering=last_updated |
| + | - これもタイムアウト |
| + | #br |
| + | |
| *** jupyterhub/singleuser [#k62bfe82] | | *** jupyterhub/singleuser [#k62bfe82] |
| /opt/conda/bin/conda update --prefix /opt/conda --all -y | | /opt/conda/bin/conda update --prefix /opt/conda --all -y |
| *** docker commit すると,起動時のオプション(arguments)まで保存する. [#v7d65576] | | *** docker commit すると,起動時のオプション(arguments)まで保存する. [#v7d65576] |
| - 次回起動すると,オプションが 2重になる.なんてこったい! docker build では大丈夫(そもそも起動していない) | | - 次回起動すると,オプションが 2重になる.なんてこったい! docker build では大丈夫(そもそも起動していない) |
- | - オプションは,イメージ(/var/lib/docker/image/overlay2/imagedb/....)に Cmd[ ] に値として保存されている. | + | - 起動時のオプションは,イメージ(/var/lib/docker/image/overlay2/imagedb/....)に Cmd[ ] に値として保存されている. |
| - イメージファイルはテキスト(!?)なので,Cmd[ ] に何が書いてあるかわかる. | | - イメージファイルはテキスト(!?)なので,Cmd[ ] に何が書いてあるかわかる. |
| -- "Cmd":["start-notebook.sh","--ip=0.0.0.0","--port=8888","--notebook-dir=/home/teacher/iseki/jupyter","--SingleUserNotebookApp.default_url=/lab"] | | -- "Cmd":["start-notebook.sh","--ip=0.0.0.0","--port=8888","--notebook-dir=/home/teacher/iseki/jupyter","--SingleUserNotebookApp.default_url=/lab"] |
| + | --- しっかりコマンドが入っている. |
| -- 流石に直接編集するのは躊躇われる.(一回やってみる?) | | -- 流石に直接編集するのは躊躇われる.(一回やってみる?) |
- | -- エディタで直接編集したら,Docker から見えなくなった. | + | --- エディタで直接編集したら,Docker から見えなくなった.まあ予想通り. |
| | | |
| - ちゃんと動くやつの Cmd[ ] を確認して,docker commit 起動時に -C オプションで変更可! | | - ちゃんと動くやつの Cmd[ ] を確認して,docker commit 起動時に -C オプションで変更可! |
| -- jupyter の場合:'' docker commit -c 'CMD ["start-notebook.sh"]' jupyter_old jupyter_new'' | | -- jupyter の場合:'' docker commit -c 'CMD ["start-notebook.sh"]' jupyter_old jupyter_new'' |
| + | --- /etc/passwd と /etc/group も元に戻しておく |
| | | |
| #br | | #br |
| | | |
| ** Trouble Shooting [#gfc999c1] | | ** Trouble Shooting [#gfc999c1] |
| + | *** 良く分かっていなかった頃のエラーなので,勘違いしているかもしれない [#te98f8c5] |
| + | |
| **** docker run実行時のiptablesエラー [#y95fbc1b] | | **** docker run実行時のiptablesエラー [#y95fbc1b] |
| - ネットワーク設定を削除し,docker を再起動する | | - ネットワーク設定を削除し,docker を再起動する |