| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
5,373 バイト追加 、 2022年7月22日 (金) 08:09
===[[Mac]]===
----
*====[https://docs.docker.jp/docker-for-mac/install.htmlDocker Desktopインストール]==== 
===[[Ubuntu]]===
----
$ sudo usermod -aG docker ${USER}
$ su ${USER}
</pre>
====一般的にUbuntuサーバーに入っているツールを一括インストール====
<pre>
root@107d2fc09ce9:# unminimize
</pre>
docker commit -m "What you did to the image" -a "Author Name" container_id repository/new_image_name
</pre>
====ログを確認====
* -f でウォッチ
<pre>
$ docker logs ${コンテナID}
</pre>
 
====DockerイメージをDockerリポジトリにプッシュ====
*Docker Hubにログイン
<pre>
$ docker push docker-registry-username/docker-image-name
</pre>
====Dockerfile====
*Dockerfileに環境構築手順を設定可能
*Dockerfileは任意のイメージを起点とする
*build コマンドは、カレントディレクトリの "Dockerfile" を実行し環境を構築する
<pre>
$ docker build .
</pre>
*タグ名など付与するので、以下のようになる
<pre>
$ docker build -t myjenkins-blueocean:1.1 .
</pre>
===イミュータブルなインフラストラクチャイメージにする===
*コンテナイメージはバージョン管理できるため、コンテナ実行後ではなく、コンテナイメージに実行バイナリやリソースを可能な限り埋め込むようにする
===軽量なDockerイメージにする軽量なDockerイメージにする===
*ノード上に使用するイメージがない場合、外部からダウンロードする必要がある
*キャッシュなどの削除、Alpine Linuxなど軽量なディストリビューションの利用
**後続のレイヤーで削除したファイルはイメージ内には実際には存在したままになる、そのファイルは単にアクセスできなくなるだけ
**各レイヤは、前のレイヤからの差分のため、前のレイヤを作り直すと、イメージをデプロイするために、そのレイヤをビルドし直し、もう一度プッシュしてからプルする必要がある
 
===セキュリティ===
*コンテナにパスワードを入れない
==Dockerfile==
*FROMでベースイメージを指定して、RUNやCOPYなどのコマンドでイメージを作成する*[https://docs.docker.jp/engine/reference/builder.html リファレンス]
*リポジトリ
**https://registry.hub.docker.com/
*Dockerfile
===[https://docs.docker.jp/engine/reference/builder.html#from FROM]===
----
*FROM 命令は、イメージビルドのための処理ステージを初期化し、ベース・イメージ を設定します。後続の命令がこれに続きます。
*1 つの Dockerfile 内に FROM を複数記述することが可能です。
*出現順にマルチレイヤーとして処理される。 これは複数のイメージを生成するため、あるいは 1 つのビルドステージを使って依存イメージをビルドするために行います。
<pre>
FROM ubuntu:latest
</pre>
===[https://docs.docker.jp/engine/reference/builder.html#run RUN]===----*RUN 命令は、現在のイメージの最上位の最新レイヤーにおいて、あらゆるコマンドを実行します。 そして処理結果を確定します。===[https://docs.docker.jp/engine/reference/builder.html#workdir WORKDIR]===----*WORKDIR 命令はワークディレクトリを設定します。 Dockerfile 内にてその後に続く命令において利用することができます。===[https://docs.docker.jp/engine/reference/builder.html#copy COPY]===----*COPY 命令は <src> からファイルやディレクトリを新たにコピーして、コンテナ内のファイルシステムのパス <dest> に追加 ===実行===----*docker build を実行すると、順次コマンドライン命令を自動化した処理が行われて、ビルド結果となるイメージが得られます。
<pre>
$ sudo docker build .
==ネットワーク==
*[[Docker ネットワーク]]
*[[TCP/IP]]
*[[Jenkins]] 参照
 
===HOSTネットワークの使用===
*https://docs.docker.jp/network/host.html
*コンテナに対して host ネットワーク・モードを使うと、コンテナのネットワーク・スタックは Docker ホストから隔離されません
 
===ボリューム===
*https://matsuand.github.io/docs.docker.jp.onthefly/storage/volumes/
*ボリュームとは、Docker コンテナーにおいて生成され利用されるデータを、永続的に保持する目的で利用される仕組み
* バインドマウント はホストマシン OS のディレクトリ構造に依存しますが、ボリュームは完全に Docker によって管理される
*ボリュームがまだ存在していない状態で、そのボリュームを使ったコンテナーを起動すると、Docker はその際にボリュームを生成
<pre>
$ docker volume ls
$ docker volume inspect ${ボリューム名}
$ docker volume rm ${ボリューム名}
</pre>
 
===docker0ブリッジ===
----
</pre>
===docker0ブリッジ3===
# 静的IP 22静的IP 23
*https://pj-doaa.hatenablog.com/entry/2019/09/04/144520
<pre>
$ docker network create --driver bridge --subnet=192.168.0.0/24 --gateway=192.168.0.22 23 --opt "com.docker.network.bridge.name"="br0" shared_nwfcdef22003bdc75011a53a8a0e71ec8a992f17b15ce671b8064753548541f53e $ ip addr show br06: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:d5:99:f5:a0 brd ff:ff:ff:ff:ff:ff inet 192.168.0.23/24 brd 192.168.0.255 scope global br0 valid_lft forever preferred_lft forever
$ sudo brctl addif br0 enp1s0f1
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0242ae6b00cb 0242d599f5a0 no enp1s0f1docker0 8000.0242c3ce6e6b 0242d7eacdca no   docker run -i -t --net shared_nw --ip 192.168.0.22 ubuntu /bin/bash</pre>  *不要?<pre>$ sudo ip route add default via 192.168.0.23 $ ip routedefault via 192.168.0.23 dev enp1s0f1 default via 192.168.0.1 dev wlp2s0 proto dhcp metric 600 default via 192.168.0.1 dev enp1s0f1 proto static metric 20100 169.254.0.0/16 dev enp1s0f1 scope link metric 1000 192.168.0.0/24 dev br0 proto kernel scope link src 192.168.0.23 192.168.0.0/24 dev enp1s0f1 proto kernel scope link src 192.168.0.23 metric 100 192.168.0.0/24 dev wlp2s0 proto kernel scope link src 192.168.0.47 metric 600 </pre>
 
<pre>
$ docker run -i -t --net shared_nw --ip 192.168.0.21 tensorflow/tensorflow:latest-jupyter
[I 13:56:25.626 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
jupyter_http_over_ws extension initialized. Listening on /http_over_websocket
[I 13:56:26.377 NotebookApp] Serving notebooks from local directory: /tf
[I 13:56:26.377 NotebookApp] Jupyter Notebook 6.3.0 is running at:
[I 13:56:26.378 NotebookApp] http://92ce0f7112eb:8888/?token=deadf022c3f634f84f7efa67b7b37decbfd28a9519e14c75
[I 13:56:26.378 NotebookApp] or http://127.0.0.1:8888/?token=deadf022c3f634f84f7efa67b7b37decbfd28a9519e14c75
[I 13:56:26.378 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 13:56:26.389 NotebookApp]
To access the notebook, open this file in a browser:
file:///root/.local/share/jupyter/runtime/nbserver-1-open.html
Or copy and paste one of these URLs:
http://92ce0f7112eb:8888/?token=deadf022c3f634f84f7efa67b7b37decbfd28a9519e14c75
or http://127.0.0.1:8888/?token=deadf022c3f634f84f7efa67b7b37decbfd28a9519e14c75
</pre>
==Tips==
===snapインストール時の起動===
----
<pre>
$ sudo systemctl restart snap.docker.dockerd
===[[WSL|WSL2でKubernetes/Dockerを動かす]]===
----
*[[WSL|WSL2でKubernetes/Dockerを動かす]]
===nginxを動かす===
----
*https://hub.docker.com/_/nginx
<pre>
===docker: Error response from daemon: cgroups: cannot find cgroup mount destination: unknown.===
----
*https://web.plus-idea.net/2019/07/docke-cgroups-mount-destination/
*https://github.com/boot2docker/boot2docker/issues/1301
===[[MySQL]]を動かす===
----
*https://hub.docker.com/_/mysql
*サーバー立ち上げ
</pre>
[[File:Docker mysql ubuntu.png|600px]]
 
===[[ASP.Net Core]]===
----
[[ASP.NET Core]]を動かす

案内メニュー