2022/10/02 Updated by
AWS: Amazon Web Services
Docker: Web Server Container
[Up]
- Amazon EC2 上に docker というインスタンスがあるので、それを起動しておく。
- 「ターミナル」や「teraterm」などを用いて SSH プロトコルで接続する。
パブリックIPv4: 35.74.66.60
User: ubuntu
key pair: docker.pem
SSH2 22 IPv4
Docker Hub https://hub.docker.com でイメージを探す。
- apache で検索すると、検索結果の一覧が表示される。一番上の httpd を選択する。
- "httpd" を選択すると詳細情報が表示される。
- 詳細ページの右に "docker pull httpd" としてダウンロードの方法が表示されている。
- 詳細ページの下に、このイメージの使用方法が表示されている。
- Create a Dockerfile in your project
FROM httpd:2.4
COPY ./public-html/ /usr/local/apache2/htdocs/
Then, run the commands to build and run the Docker image:
$ docker build -t my-apache2 .
$ docker run -dit --name my-running-app -p 8080:80 my-apache2
Visit http://localhost:8080 and you will see It works!
Without a Dockerfile
If you don't want to include a Dockerfile in your project, it is sufficient to do the following:
$ docker run -dit --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4
docker 上でコンテナを起動する。
Dockerfile 無しで起動するには、以下のように指定する。local にイメージが無い場合は、ダウンロードしてから、実行を開始する。
$ docker run -dit --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4
コンテナの実行状態を確認する。
動作中のすべてのコンテナの状態を見るには最後に -a オプションをつければよいが、ここでは指定していない。
ubuntu@ip-172-30-2-68:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b9877188664c 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
手元のPC上のブラウザで確認する。
http://35.74.66.60:8080/
WWWサーバで公開する html ファイルを作成する。
vi または nano エディタが使える。
コンテナを停止する。
$ docker stop my-apache-app
コンテナを再起動する。
$ docker start my-apache-app
ログの確認
$ docker logs my-apache-app
コンテナを破棄する。
$ docker stop my-apache-app
$ docker rm my-apache-app
ダウンロードしたイメージを確認する。
$ docker image ls
イメージを破棄する。
$ docker image rm httpd:2.4
docker コマンドについて
コンテナに対する操作には、2種類の記述方法がある。上記は省略した記述法を用いている。
[記述方法]
docker コマンド 操作 オプション
docker 操作対象 コマンド 操作 オプション
[例] 以下のようにも記述できる。
docker container start
docker container stop
docker container logs
docker container ps
docker container run