適当にDockerfileに以下のように書いてみる。centos:8.1バージョンでコンテナを作ってみたいという意思だ
Dockerfileはイメージをつくるためのレシピみたいなもので
FROM centos:8.1 RUN echo "Hello, This is minimum Dockerfile just to launch an base OS of your choice"
としてイメージをつくってみよう
> docker build -t hello/centos:8.1 . Sending build context to Docker daemon 2.048kB Step 1/2 : FROM centos:8.1 manifest for centos:8.1 not found: manifest unknown: manifest unknown
するとmanifest for centos:8.1 なんて、ないですよ、と言われています。
https://hub.docker.com/_/centos
のように、docker hubでちゃんとした名前、Supported tagsと言っていますね、で引っ張ってくる必要があるようです。
そんなわけで centos8.1.1911
としてみましょう
これで通るはず!
と思いきや
> docker build -t hello/centos:8.1 . Sending build context to Docker daemon 2.048kB Step 1/2 : FROM centos8.1.1911 pull access denied for centos8.1.1911, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
アクセス拒否!
pull access denied for centos8.1.1911, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
ということで、
repositoryが見つからないというエラーが有力で、実際にそうで、centosと指定する必要があり
FROM centos8.1.1911 ではrepository自体が`centos8.1.1911`という意味になってしまっており、うまく指定できておらず、見つからないというエラーがでます。 正しい書き方は、repositoryに:でtagをつける FROM centos:8.1.1911 になります。 あらためまして
# Check manifest in https://hub.docker.com/_/centos #FROM centos:8.1 # Will not available as supported tags #FROM centos8.1.1911 # 書き方は、repositoryに:でtagをつける。上おやり方だと:がないので、 # うまく指定できておらず、見つからないというエラーがでます。 FROM centos:8.1.1911 RUN echo "Hello, This is minimum Dockerfile just to launch an base OS of your choice"
とすると
> docker build -t hello/centos:8.1 . Sending build context to Docker daemon 2.048kB Step 1/2 : FROM centos:8.1.1911 8.1.1911: Pulling from library/centos 8a29a15cefae: Pull complete Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700 Status: Downloaded newer image for centos:8.1.1911 ---> 470671670cac Step 2/2 : RUN echo "Hello, This is minimum Dockerfile just to launch an base OS of your choice" ---> Running in e839d0442a1a Hello, This is minimum Dockerfile just to launch an base OS of your choice Removing intermediate container e839d0442a1a ---> aef73414e2fe Successfully built aef73414e2fe Successfully tagged hello/centos:8.1
見事にイメージが作成されました
docker imagesで確認してみましょう
> docker images | grep centos hello/centos 8.1 aef73414e2fe 4 minutes ago 237MB
まだ、この状態ではイメージを作っただけでコンテナーは起動されていません。
コンテナーはイメージをもとにきどうする為の箱みたいなものです。
ためしにdocker ps
というコマンドを叩いてみてください
先ほどのイメージは見当たらないはずです。
それでは実際にコンテナを起動します.
起動するためのコマンドはdocker runです。
docker run -i hello/centos:8.1
すると、画面はポーズしたように何も表示されず動きません
しかし他のターミナルから
Docker PS とコマンドを叩くと実際にコンテナーが稼働していることが確認できるはずです
停止するにはコントロール D で止めることができます。
参考参照
本家のdocs.docker.comのget-startedを読むのもやはり、間違いないです。
ただし、私の場合は英語でガンガン読み込むよりも日本語で概要とかある程度の知識を掴んでから本家で読むような順番でやることが
おおいです。
以上です