tag:crieit.net,2005:https://crieit.net/tags/EC2/feed
「EC2」の記事 - Crieit
Crieitでタグ「EC2」に投稿された最近の記事
2021-06-12T20:43:51+09:00
https://crieit.net/tags/EC2/feed
tag:crieit.net,2005:PublicArticle/17369
2021-06-07T23:51:13+09:00
2021-06-12T20:43:51+09:00
https://crieit.net/posts/AWS-EC2-Docker
【メモ】AWSでEC2を立ててDockerを起動してみる。
<h3 id="AWSで、EC2(仮想サーバー)を立てて、その上でDocker(ドッカー)を起動してみる。"><a href="#AWS%E3%81%A7%E3%80%81EC2%EF%BC%88%E4%BB%AE%E6%83%B3%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%EF%BC%89%E3%82%92%E7%AB%8B%E3%81%A6%E3%81%A6%E3%80%81%E3%81%9D%E3%81%AE%E4%B8%8A%E3%81%A7Docker%EF%BC%88%E3%83%89%E3%83%83%E3%82%AB%E3%83%BC%EF%BC%89%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B%E3%80%82">AWSで、EC2(仮想サーバー)を立てて、その上でDocker(ドッカー)を起動してみる。</a></h3>
<p><strong>ブラウザからEC2のIPアドレスにアクセスして「Hello from Docker!!!」を表示させる手順。</strong></p>
<ol>
<li>VPCを作成する。</li>
<li>サブネットを作る。</li>
<li>インターネットゲートウェイをくっつける。(VPCにアタッチする)</li>
<li>サーバー(EC2)を立てる。<br />
(インスタンス作成でVPCとサブネットを紐付け、自動割り当てパブリックIPを有効にする)</li>
<li>ファイアウォールを設定する。(セキュリティグループの設定(ポート:SSH=22とhttp=80))</li>
<li>ルーティングを設定する。(VPC→ルートテーブル→ルートの編集→サブネットの関連付け)</li>
<li>SSHでサーバーにアクセスする。(Tera Termを使った)</li>
</ol>
<pre><code>ssh://[email protected](パブリックIPv4アドレスと予めDLしておいたキーペア)
</code></pre>
<ol start="8">
<li>Dockerをインストールする。</li>
</ol>
<pre><code>sudo yum -y update (パッケージ更新)
sudo yum -y install docker (Dockerインストール)
sudo service docker start (Docker起動)
sudo docker info (Docker状態)
mkdir hello-docker (作業用フォルダ作成)
cd hello-docker (作業用フォルダ移動)
vi hello-docker.html (表示用HTML作成)
Hello from Docker !!
vi Dockerfile (dockerのイメージを作成)
FROM nginx
COPY ./hello-docker.html /usr/share/nging/html/ (/usr/share/nging/html/直下が初期表示らしい)
sudo docker build -t hello-docker-ec2 . (tオプションで名前を付けれる。最後の「.」を忘れない)
sudo docker run --rm -d -p 80:80 hello-docker-ec2 (イメージを元にdockerのコンテナを起動)
※--rm(コンテナ停止と同時にコンテナ削除)-d(バックグラウンド起動)-p(どのポート使うか)
sudo docker ps (dockerが起動しているか確認)
</code></pre>
<ol start="9">
<li>EC2にアクセスして「Hello from Docker!!」を表示させる。<br />
(http://52.15.152.1xx/hello-docker.html)</li>
</ol>
しんじ。
tag:crieit.net,2005:PublicArticle/14983
2019-05-13T20:03:23+09:00
2019-05-18T15:10:20+09:00
https://crieit.net/posts/EC2-Docker-docker-compose-PHP
EC2+Docker(+docker-compose)でPHPの環境構築をしてみた
<p>一通り触ってみたので備忘録も兼ねて書いています。<br />
誤りなどがありましたらご指摘をお願いします。</p>
<h4 id="前提:"><a href="#%E5%89%8D%E6%8F%90%EF%BC%9A">前提:</a></h4>
<ul>
<li>Macで開発</li>
<li>EC2はAMI2を使用</li>
<li>EC2の環境構築は完了している</li>
</ul>
<h4 id="手順1:Dockerをインストール&起動"><a href="#%E6%89%8B%E9%A0%861%EF%BC%9ADocker%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%26amp%3B%E8%B5%B7%E5%8B%95">手順1:Dockerをインストール&起動</a></h4>
<p>EC2にログイン</p>
<pre><code>ssh -i キーファイル ec2-user@IPアドレスorDNS名
</code></pre>
<p><a target="_blank" rel="nofollow noopener" href="https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/docker-basics.html">Amazon ECS における Docker の基本</a>に沿っていく(最初に<code>sudo -i</code>でrootユーザになってもよい)</p>
<pre><code>sudo yum update -y
sudo yum install -y docker
sudo service docker start
sudo usermod -a -G docker ec2-user
</code></pre>
<p>一旦出る</p>
<pre><code>exit
</code></pre>
<p>再度SSHで入った後<code>docker info</code>とかで<code>sudo</code>を付けずにコマンドが実行できるか確認。</p>
<p><strong>疑問点:EC2を再起動した場合は再度usermodをしないといけない?</strong></p>
<h4 id="手順2:docker-composeをインストール"><a href="#%E6%89%8B%E9%A0%862%EF%BC%9Adocker-compose%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">手順2:docker-composeをインストール</a></h4>
<p><a target="_blank" rel="nofollow noopener" href="https://docs.docker.com/compose/install/">Install Docker Compose</a>に沿っていく。</p>
<pre><code>sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
</code></pre>
<p><code>docker-compose --version</code>で確認。</p>
<h4 id="手順3:Dockerfileを作成"><a href="#%E6%89%8B%E9%A0%863%EF%BC%9ADockerfile%E3%82%92%E4%BD%9C%E6%88%90">手順3:Dockerfileを作成</a></h4>
<p><code>vi Dockerfile</code>でvimを開く</p>
<pre><code># Docker-Hubから落としてくる
FROM php:7.3.5-apache
</code></pre>
<p>後ろには<a target="_blank" rel="nofollow noopener" href="https://hub.docker.com/_/php">https://hub.docker.com/_/php</a>にあるタグで<code>-apache</code>とあるのを書く。<br />
これでPHPとApacheが両方入る。</p>
<h4 id="手順4:docker-compose.ymlを作成"><a href="#%E6%89%8B%E9%A0%864%EF%BC%9Adocker-compose.yml%E3%82%92%E4%BD%9C%E6%88%90">手順4:docker-compose.ymlを作成</a></h4>
<p><code>vi docker-compose.yml</code>で開く</p>
<pre><code># ファイルフォーマットのバージョンを指定
# https://docs.docker.com/compose/compose-file/
version: '3'
services:
web:
image: web # 'docker images'参照。使用するイメージの指定
build: . # 使用するDockerfileの場所
ports:
- "80:80" # host=EC2のport:gest=コンテナのポート
volumes:
# コンテナ内のデータは永続化されないのでマウントさせる
# hostのフォルダ:gestのフォルダ
- /home/ec2-user/tmp/html:/var/www/html
</code></pre>
<p><del><strong>疑問点:インストールされたdocker-composeは1.24.0なのに指定できないのは何故?</strong></del></p>
<h4 id="手順5:マウントさせるフォルダにphpファイルを作成"><a href="#%E6%89%8B%E9%A0%865%EF%BC%9A%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88%E3%81%95%E3%81%9B%E3%82%8B%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%ABphp%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90">手順5:マウントさせるフォルダにphpファイルを作成</a></h4>
<p>今回は<code>/home/ec2-user/tmp/html</code>に作成。<code>vi index.php</code>で開く</p>
<pre><code><?php echo 'Hello Docker!' ?>
</code></pre>
<h4 id="手順6:docker-composeでイメージとコンテナを作成・起動"><a href="#%E6%89%8B%E9%A0%866%EF%BC%9Adocker-compose%E3%81%A7%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%A8%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%82%92%E4%BD%9C%E6%88%90%E3%83%BB%E8%B5%B7%E5%8B%95">手順6:docker-composeでイメージとコンテナを作成・起動</a></h4>
<p><code>docker-compose build up -d</code>で諸々が作成・起動される。</p>
<p><code>docker images</code>とか<code>docker ps -a</code>とかで確認。</p>
<h4 id="最後:"><a href="#%E6%9C%80%E5%BE%8C%EF%BC%9A">最後:</a></h4>
<p>ブラウザで表示確認</p>
<p><a href="https://crieit.now.sh/upload_images/5674e2f9bd96201b1f686379e44783915cd949cb3d67d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5674e2f9bd96201b1f686379e44783915cd949cb3d67d.png?mw=700" alt="スクリーンショット 2019-05-13 19.41.10.png" /></a></p>
<p>最初はDockerとdocker-composeとの違いに戸惑いました。Dockerコマンド自体の上位互換と考えれば良さそうですね。</p>
<h4 id="参考リンク:"><a href="#%E5%8F%82%E8%80%83%E3%83%AA%E3%83%B3%E3%82%AF%EF%BC%9A">参考リンク:</a></h4>
<p><a target="_blank" rel="nofollow noopener" href="https://qiita.com/hidekuro/items/fc12344d36d996198e96#32-docker">https://qiita.com/hidekuro/items/fc12344d36d996198e96#32-docker</a><br />
<a target="_blank" rel="nofollow noopener" href="https://qiita.com/kotaro-dr/items/b1024c7d200a75b992fc#コンテナ一覧を確認">https://qiita.com/kotaro-dr/items/b1024c7d200a75b992fc#コンテナ一覧を確認</a><br />
<a target="_blank" rel="nofollow noopener" href="https://qiita.com/yumatsud/items/33bc22f7d8f640a286f4#docker-composerの設定">https://qiita.com/yumatsud/items/33bc22f7d8f640a286f4#docker-composerの設定</a><br />
<a target="_blank" rel="nofollow noopener" href="https://qiita.com/Ryooota/items/65ff0c32a5d93f225d7a#4-コンテナの起動">https://qiita.com/Ryooota/items/65ff0c32a5d93f225d7a#4-コンテナの起動</a></p>
蓮