CentOS8にNginxを入れずにdockerでNginx起動

Qiiaに投稿してみるにあたり、[自分のブログに掲載した内容](http://www.ebios.club/article/477990521.html "CentOS8にNginxを入れずにdockerでNginx起動")をQiia向けに修正して投稿してみることに。画像挿入や見出しや引用など、修正する作業量は割と多かった。
##CentOS8にNginxを入れずにNginx起動する

CentOS8にNginxを入れずにNginx起動することは可能だ。具体的にはdockerをインストールしてdockerを利用してNginxを起動する。
`# nginx -V`
![2020-10-18_185817.png](https://ebios10.up.seesaa.net/image/2020-10-18_185817.png "2020-10-18_185817.png")

CentOS8にはNginxをインストールしていないので、コマンドが見つかりませんでしたのメッセージ。その後にnginx のインストールを促してくるがNo。この状態でdockerをインストールしてdockerを利用してNginxを起動してみる。

##CentOS8にdockerをインストール手順についての参照元

<a href="docs.docker.com" target="_blank">docs.docker.com</a>の<a href="https://docs.docker.com/engine/install/centos/" target="_blank">CentOSにDockerエンジンをインストールする</a>を参考にしようかと思ったが、CentOS7を対象としており、CentOS8向けではなかった。そのため、<a href="https://mebee.info/2019/10/16/post-2312/" target="_blank">CentOs8にdockerをインストール</a>を参考にさせてもらいインストールの実施をすることにした。

##CentOS8にdockerをインストール（失敗）

手順としては
①<a href="https://docs.docker.com/engine/install/centos/" target="_blank">CentOSにDockerエンジンをインストールする</a>を参考に、一応古いバージョンのアンインストールを実施
`# dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine`

②CentOS Linuxのバージョン確認
`# cat /etc/centos-release`
CentOS Linux release 8.2.2004 (Core)

③リポジトリの追加 確認
`# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo`

④リポジトリの確認
`# dnf repolist`

⑤DockerEngineのインストールを実施（失敗）
`# dnf install --nobest docker-ce`

![2020-10-18_182424.png](https://ebios10.up.seesaa.net/image/2020-10-18_182424.png "2020-10-18_182424.png")
CentOS8をインストール直後の状態では、古いバージョンのdockerアンインストールは対象が無かったので「①CentOSにDockerエンジンをインストールするを参考に、一応古いバージョンのアンインストールを実施」は飛ばしてもらって問題ない。

##CentOS8にdockerをインストール（成功）

競合するパッケージがあり、DockerEngineのインストールに失敗したので、警告通り競合するパッケージを置きかえるコマンドラインを追加して再度CentOS8にdockerのインストールを実施した
⑤DockerEngineのインストールを実施（成功）
`# dnf install --nobest docker-ce --allowerasing`

![2020-10-18_182500.png](https://ebios10.up.seesaa.net/image/2020-10-18_182500.png "2020-10-18_182500.png")
dockerインストールが成功したので
⑥dockerのバージョンを確認
`# docker --version`
Docker version 19.03.13, build 4484c46d9d

⑦dockerの自動起動と起動設定
`# systemctl enable docker`
`# systemctl start docker`

を実施。
![2020-10-18_182614.png](https://ebios10.up.seesaa.net/image/2020-10-18_182614.png "2020-10-18_182614.png")

##dockerを利用してNginxを起動する

⑧dockerを利用してNginxを起動
`# docker run --name testnginx -d -p 8080:80 nginx`

⑨dockerのコンテナの状態の情報表示
`# docker ps -a`

![2020-10-18_232838.png](https://ebios10.up.seesaa.net/image/2020-10-18_232838.png "2020-10-18_232838.png")
docker runでnginxを「testnginx」という名前で<ホスト側のポート>:<コンテナ側のポート>を8080:80で実行している。
docker ps -aでコンテナの状態を表示すると
NAMESが「testnginx」PORTSが「0.0.0.0:8080->80/tcp」と、指定した条件で実行されているのが確認できる。なお後で確認することになるので、CONTAINER IDが「c917cab45486」で実行されていることにも注目しておいてほしい。

##Firefoxでlocalhost:8080にアクセス

Firefoxでlocalhost:8080にアクセスする。8080なのはdocker runで「-p 8080:80」と指定した為だ。
![2020-10-18_182852.png](https://ebios10.up.seesaa.net/image/2020-10-18_182852.png "2020-10-18_182852.png")
CentOS8にNginxを入れずにdockerを利用してNginx起動することに成功した。

##Dockerコンテナ、イメージを削除する

⑩dockerのコンテナの停止
`# docker stop c917cab45486`

⑪dockerのコンテナを削除
`# docker rm c917cab45486`

⑫dockerのコンテナの状態の情報表示
`# docker ps -a`

![2020-10-18_234125.png](https://ebios10.up.seesaa.net/image/2020-10-18_234125.png "2020-10-18_234125.png")
実行中のコンテナを削除しようとするとエラーとなるので、事前にdocker stopでCONTAINER ID「c917cab45486」を指定して停止している。その後、docker rmで削除してdockerのコンテナが無くなったことをdocker ps -aで確認している。

⑬dockerのイメージの状態の情報表示
`# docker images`
IMAGE ID f35646e83998

⑭dockerのイメージを削除
`# docker rmi f35646e83998`

⑮dockerのイメージの状態の情報表示
`# docker images`

![2020-10-20_153857.png](https://ebios10.up.seesaa.net/image/2020-10-20_153857.png "2020-10-20_153857.png")
dockerのコンテナは削除したが、dockerのイメージは残っている。dockerのイメージの情報表示を行い、IMAGE IDを指定してdockerのイメージを削除、再度dockerのイメージの情報表示を行い、dockerのイメージが無くなったことを確認している。