はじめに
CentOSにdockerをインストールしてhello-worldをrunしたけど、**Hello for Docker!**が表示されなかった現象の対応内容
環境
- CentOS 7.6
- Docker 18.09.2
- contanerd.io 1.2.2-3.3.el7
- docker-ce 3:18.09.2-3.el7
- docker-ce-cli 1:18.09.2-3.el7
現象
Get Docker CE for CentOSにかかれているとおり、
- Uninstall old versions
- Install Docker CE
- Install using the repository
- SET UP THE REPOSITORY
- INSTALL DOCKER CEの1でlatestversionをインストールし、
sudo systemctl start docker
でdockerを起動して、sudo docker run hello-world
でHello for Docker!が表示されるのを待っていたが、
- Install using the repository
いつまでたっても
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Status: Downloaded newer image for hello-world:latest
のままHello for Docker!が起動しない。
firewalldがdockerと競合するとか言う記事も見たので、systemctl stop firewalld
してdocker run hello-world
したが結果は変わらず。
docker ps -a
とすると、Createdで止まっている。
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9c767fe103c hello-world "/hello" About a minute ago Created recursing_mclaren
dockerを停止すると、docker run hello-worldがキャンセルされ、以下のようなメッセージが表示される。startしたままになっているのだろう。
docker: error during connect: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/e9c767fe103cb4287503e22d8720f95f6197110deec89e7c774691617a91ee9d/start: EOF.
対応
dockerのバージョンが18.09だが、それにする必要もなかったので、18.06にした。
Get Docker CE for CentOSのUninstall Dockerで、sudo yum remote docker-ce containerd docker-ce-cli
で、アンインストールして、rm -fr /var/lib/docker
でファイルを全部削除した。
その後Install using the repositoryのINSTALL DOCKER CEのステップ2に沿って、バージョンを確認した。
18.09の前のバージョンとして、18.06.2があったので、sudo yum install docker-ce-18.06.2.ce conatinerd.io
でインストールした。containerd.ioが必要か不明。
で、systemctl start docker
して、docker run hello-world
したら、Hello for Docker!が表示された。
まとめ
なぜ動かなかったかの理由は不明。
18.09でdockerが動作しなかったらダウングレードしよう。