Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
OrganizationAdvent CalendarQiitadon (β)
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?


More than 1 year has passed since last update.


1. Dockerfileの準備

Dockerfileに centos 7.5.1804 をベースとして、Apacheをインストールする処理を記述します。

$ cat Dockerfile
FROM centos:7.5.1804
RUN yum install -y httpd iproute && yum clean all
RUN echo "Hello Apache." > /var/www/html/index.html
RUN systemctl enable httpd

2. Dockerイメージの作成

手順1で作成した Dockerfileを活用して、Dockerイメージを作成します。

Dockerイメージ作成時にDockerfileを利用する場合は、 -t オプションで活用するDockerfileを指定します。


$ docker image build -f ./Dockerfile -t centos:c75apache01 .
Sending build context to Docker daemon  2.048kB
Step 1/4 : FROM centos:7.5.1804
Step 4/4 : RUN systemctl enable httpd
 ---> Running in 24b73348522b
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service, pointing to /usr/lib/systemd/system/httpd.service.
Removing intermediate container 24b73348522b
 ---> f266477d66c2
Successfully built f266477d66c2
Successfully tagged centos:c75apache01


$ docker image ls
REPOSITORY                         TAG                    IMAGE ID            CREATED             SIZE
centos                             c75apache01            f266477d66c2        2 minutes ago       257MB

3. Dockerコンテナの起動


以下のコマンドでは --tmpfs オプションを活用し、 /tmp と /run フォルダをメモリ上に展開するようにします。

-p オプションではポートを指定して、ホストOS上で8081番ポートを参照するとDockerコンテナの80番ポートへポートフォワードするように設定することができます。

$ docker container run \
> -itd \
> --tmpfs /tmp \
> --tmpfs /run \
> -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
> --stop-signal SIGRTMIN+3 \
> --name web0001 \
> -h web0001 \
> -p 8081:80 \
> centos:c75apache01 /sbin/init
$ docker container ls -a
CONTAINER ID        IMAGE                COMMAND                   CREATED             STATUS                     PORTS                  NAMES
6e97f6a53137        centos:c75apache01   "/sbin/init"              9 seconds ago       Up 8 seconds     >80/tcp   web0001
$ docker container stats --no-stream
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
6e97f6a53137        web0001             0.01%               11.94MiB / 1.952GiB   0.60%               5.35kB / 3.25kB     6.67MB / 4.1kB      12


コンテナ起動後に、 docker container exec コマンドでコンテナへログインし、Apacheが起動していることとドキュメントルートにファイルが展開されていることを確認します。

$ docker container exec -it web0001 /bin/bash
[root@web0001 /]# systemctl status httpd | grep active
   Active: active (running) since Sun 2019-06-09 04:53:57 UTC; 3min 9s ago
[root@web0001 /]# cat /var/www/html/index.html
Hello Apache.
[root@web0001 /]#



$ curl http://localhost:8081/
Hello Apache.


  1. 古賀政純, "Docker実践ガイド 第2版", 2019.
  2. Use tmpfs mounts _ Docker Documentation, https://docs.docker.com/storage/tmpfs/, Online; accessed 9-June-2019.
都内のIT企業で働いております。 サーバサイド / クライアントサイドいろいろやっています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away