[docker]centos7.5にnginxをインストースして起動/停止する

カテゴリ: Docker

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]
こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。