紙一重の積み重ね

アラフォーのエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【作業メモ】AWS EC2 に Apache コンテナをインストールする手順

はじめに

コンテナを学習しているのでメモ。

やりたいこと

  • AWS EC2 に Apache を入れて動かしたい

作業メモ

Apache コンテナのインストール

  • Dockerfile なしで実行する。
  • docker run コマンドは、以下3つのコマンドをまとめて実行している。
    • docker pull
      • リポジトリからイメージを取得
      • $ docker pull httpd:2.4
    • docker create
      • イメージからコンテナを作成
      • $docker create --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4
    • docker start
      • コンテナの実行
      • $docker start my-apache-app
ubuntu@ip-172-31-3-173:~$ docker run -dit --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:
2.4

動作確認

STATUSUp になっていればOK。

$ docker ps
CONTAINER ID   IMAGE       COMMAND              CREATED              STATUS              PORTS                                   NAMES
875ca6b4e291   httpd:2.4   "httpd-foreground"   About a minute ago   Up About a minute   0.0.0.0:8080->80/tcp, :::8080->80/tcp   my-apache-app

docker container ls コマンドでも同様の結果が得られる。

こちらの書き方のほうが新しい書式。

$ docker container ls
CONTAINER ID   IMAGE       COMMAND              CREATED         STATUS         PORTS                                   NAMES
875ca6b4e291   httpd:2.4   "httpd-foreground"   5 minutes ago   Up 5 minutes   0.0.0.0:8080->80/tcp, :::8080->80/tcp   my-apache-app

ローカルブラウザからアクセス

http://ec2インスタンスのパブリックIP:8080 でアクセスする。

docker の停止

$ docker stop my-apache-app
my-apache-app

$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

$ docker ps -a
CONTAINER ID   IMAGE       COMMAND              CREATED         STATUS                      PORTS     NAMES
38e541232b09   httpd:2.4   "httpd-foreground"   3 minutes ago   Exited (0) 44 seconds ago             my-apache-app

コンテナの再開

$ docker start my-apache-app
my-apache-app

$ docker ps -a
CONTAINER ID   IMAGE       COMMAND              CREATED         STATUS         PORTS                                   NAMES
38e541232b09   httpd:2.4   "httpd-foreground"   4 minutes ago   Up 4 seconds   0.0.0.0:8080->80/tcp, :::8080->80/tcp   my-apache-app

httpd コンテナのログ確認

$ docker logs my-apache-app

httpd コンテナとイメージの破棄

コンテナの破棄

  • stop しても、コンテナイは残り続ける。
  • ディスクを圧迫する為、不要なコンテナは破棄する。
$ docker rm my-apache-app
my-apache-app
  • 破棄すると、 ps -a コマンドでも表示されない。
$ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

Docker イメージの破棄

  • ダウンロードした Docker イメージは、 docker image ls で確認できる
$ docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
httpd        2.4       98f93cd0ec3b   8 days ago   144MB
  • 同じ Docker イメージからコンテナを再作成できるようにするために、毎回ダウンロードはしていない。Docker イメージも破棄できる。
$ docker image rm httpd:2.4
Untagged: httpd:2.4
Untagged: httpd@sha256:c479bec894c5a7f8878b28e52d03cc95b1e784612ecd01ac7c7394fc5fa2e6e2
Deleted: sha256:98f93cd0ec3b2e428f152d265d431bcb3f8a5ff56adaa5023e11a2b3b5a107e7
Deleted: sha256:f4592b579afa218a66285f3652418a826313aac1813be685ff9738dc06c0d8d9
Deleted: sha256:061811c2224e933b8ea3e2e0ffe7ec7bab8c2510f8f938ab13f9c4bacd425bd7
Deleted: sha256:b6ac17bbf3c4d8d63c1a085e9affa7a6c3f6e765f821837ff3d3e7fc0c0706e2
Deleted: sha256:3439b4fb9b4289be9427c14f2840d97e3573dc8d609584d9ceb2ad8bbd3ae9dc
Deleted: sha256:ad6562704f3759fb50f0d3de5f80a38f65a85e709b77fd24491253990f30b6be
  • 削除するとイメージも消える
$ docker image ls
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

参考情報