systemd経由でnginxを起動する
Dockerfile
FROM centos:7.5.1804
RUN yum install -y epel-release; \
yum install -y nginx iproute; \
systemctl enable nginx
実行するコマンド
# イメージ作成
docker image build --tag centos:nginx .
docker image ls centos
# 起動
docker container run --privileged -itd --name nginx1 --hostname nginx1 -p 80:80 centos:nginx /sbin/init
docker container ps -a
# statusをチェック
docker container exec -it nginx1 systemctl status nginx.service
# IPアドレスを確認
docker container exec -it nginx1 ip a s eth0 | grep inet
# サーバにアクセスしてみる
curl http://localhost/
# コンテナ停止
docker container stop nginx1
docker container ps -a
# コンテナ削除
docker container rm nginx1
docker container ps -a
# イメージ削除
docker image rm centos:nginx
docker image ls centos
nginxを起動するときに、ホスト上のディレクトリをDocumentRootにする
docker container runコマンドの-vオプションを使って、ホストの./docroot
を/usr/share/nginx/html
にマウントします。-vオプションのディレクトリ指定は"/"から始まる絶対パスで指定する必要があります。CentOS7.5でnginxをインストールすると、上記のディレクトリがDocRootになっているので、これでDockerホストPC上にあるファイルをnginxで公開できます。
docker container run \
--privileged \
-itd \
--name nginx1 \
--hostname nginx1 \
-p 80:80 \
-v $(pwd)/docroot:/usr/share/nginx/html \
centos:nginx /sbin/init
docker buildで何のコマンドを実行したかチェックする
$ docker image inspect --format="{{ .ContainerConfig.Cmd }}" centos:nginx
[/bin/sh -c yum install -y epel-release; yum install -y nginx iproute; systemctl enable nginx]
こちらもおススメ