うつ病と再就職への格闘雑記。

中年独身社会人が日々行動を振り返ります。理解のある恋人も妻も居ません。死なないために生きる。

仕事の関連でDockerを、と言われたのだけど、名前だけ聞いたけど、

docker-compose up -d

くらいしか実行したことないのでちゃんと最初から勉強していく。

当座のゴールは出されてきたDockerfileやらdocker-compose.ymlを

ちゃんと言われたとおりに動かせること。

Dockerfile作ってイメージ構築とかまだ遠すぎて先の目標

今日知ったこと
その1: Docker pull

Docker用のイメージを取得するときに

docker pull 【イメージ名】

と実行すると、どこかから勝手にダウンロードされてくるのだけど、

これはDocker Desktop(今はMacOS使ってる)がもつ初期設定の取得元が

Docker公式のDockerHubと呼ばれるDockerリポジトリだかららしい。

疑問:そうすると他のDockerリポジトリ?レポジトリから設定オプションで
取得する方法が有るってコトだろうか?

その2 Docker run

何はともあれ、ダウンロードしたイメージというものを実体化?して動かさないと行けない。

最初に

```
docker pull ubuntu:latest

```

してるのでubuntuイメージの最新番が入っている。

早速実行してみる。

 

docker container run -it --name "test1" ubuntu:latest /bin/cal

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/bin/cal": stat /bin/cal: no such file or directory: unknown.

いきなりエラーが出た。

 

OS系のイメージの場合、中にログインして確認が出来るので試してみる。

docker container run -it --name "test1" ubuntu:latest /bin/bash

docker: Error response from daemon: Conflict. The container name "/test1" is already in use by containe

今度はコンテナの名前が重複しているよ、というエラー。一度終了したものでも
バックに残ったままのようだ。

 

コンテナに付ける名前変更して再挑戦、

docker container run -it --name "test2" ubuntu:latest /bin/bash

root@b152b16ad478:/# ユーザとしてはrootで動かすらしい。

ls /binをしてわかった、centosには/bin/calがあるがubuntuには入ってない。

イメージによって中のコマンド群も変えているようだ。

 

ひとまずはここまでで使ったコンテナを片付けようと思う。

docker container help

を実行すると大量にサブコマンドが出力されるが、今回は「rm」コマンドでよさそう。

「prune」コマンドも「all stopped container」とあるので同じようなつかえ方できそうだけど。

問題は実行したコンテナが何かすぐ分からない。マニュアルを調べたら

docker container ps -a

で全部の終了済み含むコンテナを表示できる。

今日は順番に

docker container rm 名前で消してみる。

docker container rm test2

同じように作ったコンテナも削除。

最後に

docker container ps -a

を実行して、ヘッダ部分しかない事を確認。

頭回らないので一日この辺が限界。

 

次の目標

①runで「-it」付けないときはどうなるのか、どういう挙動返るのか

②docker container pruneしたときの挙動、止まってるコンテナが全部消えるのか?