Cloud9を使って、コンテナを作成する方法

今回は、Cloud9を使って、コンテナを作成する方法をご紹介致します。
やってみて感じたのは、Cloud9使いやすいです。

①Dockerfileの作成
---
最初に、Dockerfileと呼ばれるファイルを作成します。これは、Dockerがコンテナを構築するために使用する指示を含むテキストファイルです。一般的に、Dockerfileには、ベースイメージ、追加するパッケージ、ポートの公開、作成するディレクトリなど、様々な設定が含まれます。

②Dockerイメージのビルド
---
Dockerfileが作成されたら、以下のコマンドを使用してDockerイメージをビルドします。

```
docker build -t イメージ名:タグ名 Dockerfileのあるディレクトリ
```
-tオプションは、イメージに名前を付けるためのものであり、Dockerfileのあるディレクトリは、Dockerfileが保存されているディレクトリを指定します。

③Dockerコンテナの作成
---
Dockerイメージが作成されたら、以下のコマンドを使用してDockerコンテナを作成します。

```
docker run -d --name コンテナ名 -p ホスト側のポート:コンテナ側のポート イメージ名:タグ名
```
-dオプションは、コンテナをデタッチドモードで実行するためのものであり、--nameオプションは、コンテナに名前を付けるためのものです。-pオプションは、ホストとコンテナのポートをマッピングするためのものです。

④ECRにdockerイメージを登録する
--
DockerイメージをAWSの各種サービスと連携させるためには「ECR」と呼ばれるレジストリサービスへ登録しておく必要があります。

まずは、やってみる
--

Cloud9環境構築
設定初期画面で、名称を記載　例：cont-cicd-hand 
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/3d1d474d-2436-f3bb-9096-0267f017a0b4.png)

名称記載後、Createボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/f57ca71f-3b29-a499-80f7-8b97514f7a90.png)

Cloud9環境が作成される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/617019ac-4ddf-3fa0-c405-ae73f9a63819.png)

作成したCloud9環境を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/c5738c91-305f-fae5-eeaa-ec1ceee75ccf.png)

①Dockerfileの作成
---
dockerが、入っている事を確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/a3505340-9f94-20aa-06d6-c24b0010d8a6.png)

Dokerfileを記載し、index.htmlを入れるフォルダを新規作成する
Dokerfile例：
```
FROM ubuntsu:18.04

COPY docker-entrypoint.sh /var/tmp

RUN mv /var/tmp/docker-entrypoint.sh /usr/local/bin/; \
    chmod +x /usr/local/bin/docker-entrypoint.sh;

ENTRYPOINT ["docker-entrypoint.sh"]

CMD ["echo", "Hello World"]
```

docker-entrypoint.sh
```
#! /bin/sh

env

exec "$@"
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/d4168362-ccba-60b7-f178-71d5ccb8c7e0.png)

index.htmlを記載
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/e4548fd3-bb1e-1434-2ec4-a38e92619dba.png)

②Dockerイメージのビルド
---
docker image build -t NAME:TAG .

docker build で、Stepが消化されていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/fdab9c9a-576f-2fe7-1c33-a93000791170.png)

docker imageの確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/5be8b69b-8fd2-c852-85a0-b33fd87c7bf5.png)

プロセスの確認(未作成)を確認(何もないですね。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/94665ac2-cf95-be87-38d6-ab13eada47ea.png)

③Dockerコンテナの作成
--


docker run -d -p 8080:80 --name local-run cont-cicd-hand
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/4927558b-f1ca-ce76-48d8-4d932a55cc0c.png)


プロセスの確認(プロセスが作成されてますね。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/7acd2f02-8514-169e-d0ad-7294f7e1362b.png)


crulコマンドで、アクセスを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/a3421c55-a761-be89-4f73-2bc9c3f07a5f.png)

ログインして、確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/544b64b2-c925-7877-7374-d2e12e83f71b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/f9bb733d-6b9b-cd13-423e-58fa6ca433e2.png)

④ECRにdockerイメージを登録する
--

ECR作成初期画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/9eff61c0-045e-5659-5313-250b9e5844a2.png)

リポジトリを作成(作成前)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/0182617c-705d-fbba-539b-2e465aa16e50.png)

リポジトリを作成　リポジトリ名称を記載　例：cont-cicd-repo
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/f7f9297f-8d68-e798-080d-7732f0f5e512.png)

リポジトリ作成完了　このURIを以下で利用する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/506f9d6d-7888-22b7-9e3b-1296d4ebf93b.png)


docker build
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/c52184bd-76a2-d4c9-d5ee-b86298e9473a.png)

imageが作成出来ている事を確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/3c15cd9c-f712-7fe7-cbe3-69a3546abc35.png)

ログイン出来る事を確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/69a5cc8f-6c9f-cf6c-c155-f83718411b5a.png)

docker push
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/d112f2bf-b95c-1f89-883f-26d34ba550e0.png)

イメージ登録完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920213/87d66848-6045-f9f8-5343-141afb19fe22.png)

以上の手順を実行することで、Dockerコンテナを作成し、
DockerイメージをAWSの各種サービスと連携させる準備ができました。
---