<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MySQL アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<atom:link href="https://nyanblog2222.com/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>https://nyanblog2222.com/tag/mysql/</link>
	<description>ちょっとしたことを調べているよ</description>
	<lastBuildDate>Tue, 10 Oct 2023 06:06:03 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://nyanblog2222.com/wp-content/uploads/2021/09/cropped-favicon-32x32.png</url>
	<title>MySQL アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<link>https://nyanblog2222.com/tag/mysql/</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>【簡単】DockerでPHPとMySQLの環境構築【コンテナ仮想化】</title>
		<link>https://nyanblog2222.com/programming/cmd/5184/</link>
					<comments>https://nyanblog2222.com/programming/cmd/5184/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sun, 26 Mar 2023 09:28:33 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[コマンドプロンプト]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[環境構築]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=5184</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_2.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_2.png 1280w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_2-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_2-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_2-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />目次 DockerとはDockerをインストールファイル構成ファイル作成docker-compose.yml ファイルコンテナ[php]：Dockerfile コンテナ[mysql]：Dockerfile index.p [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/cmd/5184/">【簡単】DockerでPHPとMySQLの環境構築【コンテナ仮想化】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_2.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" srcset="https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_2.png 1280w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_2-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_2-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2023/03/20230328_2-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Dockerとは</a></li><li><a href="#toc2" tabindex="0">Dockerをインストール</a></li><li><a href="#toc3" tabindex="0">ファイル構成</a></li><li><a href="#toc4" tabindex="0">ファイル作成</a><ol><li><a href="#toc5" tabindex="0">docker-compose.yml ファイル</a></li><li><a href="#toc6" tabindex="0">コンテナ[php]：Dockerfile </a></li><li><a href="#toc7" tabindex="0">コンテナ[mysql]：Dockerfile </a></li><li><a href="#toc8" tabindex="0">index.php ファイル</a></li></ol></li><li><a href="#toc9" tabindex="0">動作確認</a><ol><li><a href="#toc10" tabindex="0">localhostに接続</a></li><li><a href="#toc11" tabindex="0">コンテナ内に入ってphp実行確認</a></li><li><a href="#toc12" tabindex="0">MySQL接続、SQL実行</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Dockerとは</span></h2>



<p>Dockerは<span class="bold-red">コンテナ仮想化</span>を使ったアプリケーションを開発・配置・実行するためのオープンプラットフォームです。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<p>簡単に利点をいうと、<br>・環境構築ファイルを共有することで<span class="marker-under">簡単に同じ環境を提供可能</span><br>・<span class="marker-under">環境の流用や変更が簡単</span><br>・<span class="marker-under">軽量で高速</span>に起動、停止が可能</p>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>詳しいことが知りたい方は色々調べてみてください♪<br>（気が向けば別記事で書きます）</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc2">Dockerをインストール</span></h2>



<p>Dockerをインストールします。<br>以下のリンクからダウンロードしてインストールを行ってください。</p>



<p><a rel="noopener" href="https://www.docker.com/get-started/" target="_blank">Dockerのダウンロードはこちらから</a></p>



<p>コマンドプロンプトやVSCodeのターミナルなどで<br><span class="marker-under">バージョン確認のコマンドを実行</span>し、インストールされていることを確認できます。</p>



<p>■コマンド &#8211; バージョン確認<br><code>docker -v</code></p>



<p>■コマンド結果<br>このようにバージョンが出てきたらOKです。</p>



<pre class="wp-block-code plaintext"><code>&gt; docker -v 
Docker version 20.10.13, build a224086</code></pre>



<h2 class="wp-block-heading"><span id="toc3">ファイル構成</span></h2>



<p>今回は以下のファイル構成で環境構築しています。<br>慣れたら自分の好きなファイル構成にしていただいて構いません。</p>



<p>□：ディレクトリ名<br>・：ファイル名</p>



<pre class="wp-block-code plaintext"><code>□app
├□docker
││
│├□mysql
││├□data
││└・Dockerfile
││
│└□php
│  └・Dockerfile
│
├□html
│└・index.php
│
└・docker-compose.yml</code></pre>



<p>※1 mysql\dataディレクトリの中身は空で作成してください。</p>



<h2 class="wp-block-heading"><span id="toc4">ファイル作成</span></h2>



<p>各ファイルの内容を載せています。</p>



<h3 class="wp-block-heading"><span id="toc5">docker-compose.yml ファイル</span></h3>



<pre class="wp-block-code plaintext"><code>version: '3'
services:
  php:
    build:
      context: ./docker/php
      dockerfile: Dockerfile
    volumes:
      - ./src:/var/www/html
    ports:
      - 8080:80
    depends_on:
      - db

  db:
    build:
      context: ./docker/mysql
      dockerfile: Dockerfile
    volumes:
      - ./docker/mysql/data:/var/lib/mysql
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=pass
      - MYSQL_DATABASE=app
      - MYSQL_USER=user
      - MYSQL_PASSWORD=root
</code></pre>



<p>ぱっと見分かる箇所は説明抜いてます。</p>



<p>volumes:<br>　右側：ローカル上のディレクトリパス（docker-compose.ymlからの相対パス）<br>　左側：永続化したいサーバーフォルダ</p>



<p>build:<br>　context：build実行パス<br>　dockerfile：Dockerファイル名</p>



<p>depends_on:<br>　db：dbコンテナを先に起動</p>



<h3 class="wp-block-heading"><span id="toc6">コンテナ[php]：Dockerfile </span></h3>



<pre class="wp-block-code plaintext"><code>FROM php:8.0-apache

RUN apt-get update &amp;&amp; apt-get install -y libonig-dev &amp;&amp; \
    docker-php-ext-install pdo_mysql mysqli
</code></pre>



<h3 class="wp-block-heading"><span id="toc7">コンテナ[mysql]：Dockerfile </span></h3>



<pre class="wp-block-code plaintext"><code>FROM mysql:8.0.20</code></pre>



<h3 class="wp-block-heading"><span id="toc8">index.php ファイル</span></h3>



<pre class="wp-block-code php"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="ja"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;環境構築&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;p&gt;&lt;?php print ("Hello World!");?&gt;&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>



<p>localhostに接続して表示する内容を記載しています。</p>



<h2 class="wp-block-heading"><span id="toc9">動作確認</span></h2>



<h3 class="wp-block-heading"><span id="toc10">localhostに接続</span></h3>



<p>■コマンド &#8211; コンテナ起動<br>（-d）はバックグラウンドで実行</p>



<p><code>docker compose up -d</code></p>



<p>■ローカル環境にアクセス<br><code>http://localhost:8080</code></p>



<p><span class="marker-under">「Hello World!」</span>と画面に表示</p>



<figure class="wp-block-image size-full"><img decoding="async" width="232" height="137" src="https://nyanblog2222.com/wp-content/uploads/2023/03/20230325.png" alt="" class="wp-image-5248"/><figcaption class="wp-element-caption"><code>http://localhost:8080</code>に接続</figcaption></figure>



<p>■コンテナ名を変更したとき<br>変更前のコンテナが残っているので、一度削除しておく<br>※ 削除せずにコンテナ起動すると警告が出る</p>



<p><code>docker compose down --remove-orphans</code></p>



<h3 class="wp-block-heading"><span id="toc11">コンテナ内に入ってphp実行確認</span></h3>



<p>phpコンテナに入ってphpファイルを実行確認する場合</p>



<p>■phpコンテナに入る<br><code>docker compose exec php bash</code></p>



<p>■phpファイル実行<br><code>php index.php</code></p>



<p>ファイルを実行します。<br>[index.php]ファイルの中身を<br>[echo Hello World!]だけにした方が分かりやすいかもしれません。</p>



<p>■bash終了<br><code>exit</code></p>



<h3 class="wp-block-heading"><span id="toc12">MySQL接続、SQL実行</span></h3>



<p>■MySQLコンテナでMySQL接続<br><code>docker compose exec db mysql -u root -ppass</code></p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p><span class="marker-under">db[コンテナ名]<br>pass[MYSQL_ROOT_PASSWORD]</span><br>は[docker-compose.yml]で設定した値です。</p>
</div></div>



<pre class="wp-block-code php"><code>&gt; docker compose exec db mysql -u root -ppass
Welcome to the MySQL monitor.  Commands end with ; or \g.
・・・
mysql&gt;</code></pre>



<p>上記のように<br><code>mysql&gt;</code>とSQLが入力できる状態であればOKです。</p>



<p><code>SHOW DATABASES;</code><br>などSQL文を実行して試してみてください。</p>



<p>これで環境構築は完了です。</p>



<p>これから色々試してみる予定なので、<br>phpのiniファイルを追加したりcnfファイルを追加した<br>よかったら参考にしてみてください。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://nyanblog2222.com/wp-content/uploads/2021/07/2645602.png" alt="みみねこ" class="speech-icon-image"/></figure><div class="speech-name">みみねこ</div></div><div class="speech-balloon">
<p>いやぁ…。色々はまりました。<br>はまった点を記載すべきなのですが、開発環境も異なるため解決方法も異なる可能性が高く一つ一つネットで調べるのが速いと思います。</p>
</div></div>
<p>投稿 <a href="https://nyanblog2222.com/programming/cmd/5184/">【簡単】DockerでPHPとMySQLの環境構築【コンテナ仮想化】</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/cmd/5184/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
