<?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>docker アーカイブ - ゴロ寝</title>
	<atom:link href="https://blog.gorone.site/archives/tag/docker/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.gorone.site/archives/tag/docker</link>
	<description></description>
	<lastBuildDate>Fri, 18 Mar 2022 04:40:53 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://blog.gorone.site/wp-content/uploads/2021/06/cropped-WS000006-32x32.jpg</url>
	<title>docker アーカイブ - ゴロ寝</title>
	<link>https://blog.gorone.site/archives/tag/docker</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>laravel8開発環境セッティング(docker編)</title>
		<link>https://blog.gorone.site/archives/672</link>
					<comments>https://blog.gorone.site/archives/672#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Sun, 07 Nov 2021 02:50:02 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[趣味]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[Laravel]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=672</guid>

					<description><![CDATA[<p>目次 windowsの方を対象にしていますwindows homeでもdocker desktopが使える！hello docker windowsの方を対象にしています windowsの方を対象にしてしていますが、仮想 [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/672">laravel8開発環境セッティング(docker編)</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
  <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">windowsの方を対象にしています</a><ol><li><a href="#toc2" tabindex="0">windows homeでもdocker desktopが使える！</a></li><li><a href="#toc3" tabindex="0">hello docker</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">windowsの方を対象にしています</span></h2>
<p>windowsの方を対象にしてしていますが、仮想環境内でのインストールする物などは同じなので、Macの方も参考程度になるとは思います。</p>
<h3><span id="toc2">windows homeでもdocker desktopが使える！</span></h3>
<p>これまではwindows pro以上の環境が求められていましたが、windows homeでもdocker desktopが使える様になりました。<br />
docker desktopの何がいいって分かりやすさです。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2.jpg"><img fetchpriority="high" decoding="async" class="alignnone wp-image-673 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2.jpg" alt="docker" width="1024" height="582" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2-300x171.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2-768x437.jpg 768w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2-120x68.jpg 120w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000000-2-160x90.jpg 160w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><br />
docker psしなくても何が動いているのか一目瞭然です。</p>
<p>ただdocker psは使う事にはなるんですけどね。<br />
しかしコマンドを覚えなければというより、docker psしたくなるのです。<br />
それは追々話しましょう。</p>
<p>まずはdocker desktopをインストールしましょう。</p>
<a rel="noopener" href="https://www.docker.com/products/docker-desktop" title="Docker Desktop" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://www.docker.com/app/uploads/2013/06/Docker-logo-01.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Desktop</div><div class="blogcard-snippet external-blogcard-snippet">Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.docker.com/products/docker-desktop/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.docker.com</div></div></div></div></a>
<p>すいません、インストールする際の画面で何が聞かれるか覚えていないです。<br />
基本的に[next]あるいは[次へ]で進めていって問題ないです。</p>
<p>少し時間がかかりますが、docker desktop(長いのでここからdockerと省略します)がインストール出来たと思います。<br />
かわいいクジラアイコンがデスクトップにありますね、あるいはインストール後開くで既に開いているかもしれません。</p>
<p>特に問題なく開けた方はおめでとうございます。<br />
これでdockerはあなたの物です。</p>
<p>しかし、開くと何かエラーが出て起動出来ないという方がいるんじゃないでしょうか。<br />
私もそうでした。<br />
windowsではdockerを動かす為にHyper-Vという機能をONにしてあげる必要があります。<br />
パワーシェルを管理者モードで開いて下さい。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-2.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-674 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-2.jpg" alt="パワーシェル" width="786" height="582" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-2.jpg 786w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-2-300x222.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000001-2-768x569.jpg 768w" sizes="auto, (max-width: 786px) 100vw, 786px" /></a></p>
<p>真っ青な画面が出てきましたね。<br />
そこに<br />
bcdedit /set hypervisorlaunchtype auto<br />
と打ち込んでエンターです。</p>
<p>成功しました的な文字が出ればOKです。<br />
一旦再起動しましょう。</p>
<h3><span id="toc3">hello docker</span></h3>
<p>おそらくdockerは正常に開けたと思います。<br />
チュートリアルでhello dockerが出てくると思いますが、操作になれておきたい人はやってみて下さい。</p>
<p>ちょっとだけdockerの説明をすると、dockerはイメージを元にコンテナを作成します。<br />
意味が分かりませんね。</p>
<p>あまり例えが上手くないのですが、ゲームのドラクエをイメージだとします。<br />
これを起動すると当然ドラクエがスタートする訳ですが、このドラクエいい所まで進んだら普通はセーブをしますね。<br />
dockerの場合はイメージをセーブするのです。<br />
次回からはセーブしたイメージを元にコンテナを作るとセーブした内容が残っているので続きからプレイ出来ます。</p>
<p>意味不明だったら突っ込んで下さい。<br />
要はコンテナは一時的な物で起動している間は内容を覚えてくれていますが、電源を落とすとリセットされてまっさらな状態からスタート出来ます。</p>
<p>ただソースコードやDBの内容などはwindows側にdockerとの共有フォルダを作れるので保存しておく事が出来ます。</p>
<p>では元となるイメージを探してみましょう。</p>
<a rel="noopener" href="https://hub.docker.com/" title="Docker Hub Container Image Library | App Containerization" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://blog.gorone.site/wp-content/uploads/cocoon-resources/blog-card-cache/2e6747c9c30c5373998b333d246cb277.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Hub Container Image Library | App Containerization</div><div class="blogcard-snippet external-blogcard-snippet">Welcome to the world&#039;s largest container registry built for developers and open source contributors to find, use, and share their container images. Build, push ...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://hub.docker.com" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">hub.docker.com</div></div></div></div></a>
<p>今回もvagrant編と同じようにcentos7を使用します。</p>
<a href="https://blog.gorone.site/archives/650" title="laravel8開発環境セッティング(vagrant編)" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-160x90.png 160w, https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-120x68.png 120w, https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-320x180.png 320w" sizes="auto, (max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">laravel8開発環境セッティング(vagrant編)</div><div class="blogcard-snippet internal-blogcard-snippet">laravel8がインストール出来ないという方向けに書いてみます。まずは仮想環境を用意しましょう。というのも筆者がxamp環境でインストールした事が無いのでやり方が分かりません^^;仮想環境を使えばサクっと出来上がるので、まだやった事が無い人は挑戦してみましょう。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://blog.gorone.site" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">blog.gorone.site</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.11.06</div></div></div></div></a>
<p>また前回の記事を読んで頂けたならお気づきでしょうが、laravelが既にセットされているイメージもあります。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-2.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-675 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-2.jpg" alt="larabel8" width="481" height="198" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-2.jpg 481w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000003-2-300x123.jpg 300w" sizes="auto, (max-width: 481px) 100vw, 481px" /></a></p>
<p>ただdockerはイメージを繋いで起動する事が出来るので、上記のイメージはlaravel8のフォルダがあるだけのイメージかもしれません。</p>
<p>そういえば重要な事を書いていなかったのですが、dockerは言語、webサーバー、DB、FWもしかしたらもっと小さい単位で細分化されたイメージがあります。<br />
イメージを使えばいちいち自分でインストールする事なくその環境を手に入れる事が出来るのですが、docker初心者の私からすると最初はベースのOSのイメージとDBの組み合わせが分かりやすいと思います。<br />
勿論慣れてる方ややってみたい方は細分化されたイメージを繋いで色んな言語、DBなどを繋いで遊んでもいいと思います。</p>
<p>なぜベースイメージ+DBをオススメするかと言うと前述した通りdockerのコンテナはストップさせると中の状態をリセットします。<br />
その際ソースコードやDBの中身もリセットされてしまうので共有フォルダに保存しておきます。<br />
そうする事でコンテナがリセットされても途中まで書いていたソースやDBの中身を再現する事が出来る訳です。</p>
<p>なので最低限この２つのイメージを組み合わせると便利という訳です。<br />
という事でcentos7とまたherokuにアップするのが目的なのでposgreのイメージをDLします。</p>
<p>すいません、その前にprojetフォルダを作っておいて下さい。<br />
Cの直下などがオススメです。<br />
そのフォルダの中にdockerなど好きな名前でフォルダを作って下さい。<br />
一応注意として半角英数字でのみで作ったフォルダのパスまでいける様にしておいた方がトラブルが無いと思います。</p>
<p>dockerフォルダでまたパワーシェルを開いて下さい。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000004.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-676 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000004.jpg" alt="パワーシェル" width="552" height="330" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000004.jpg 552w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000004-300x179.jpg 300w" sizes="auto, (max-width: 552px) 100vw, 552px" /></a><br />
そこで<br />
docker pull centos7<br />
と入力してエンターです。</p>
<p>もし失敗してしまったらgitが入っていない可能性があります。<br />
その場合gitを入れて再トライしてください。</p>
<a rel="noopener" href="https://git-scm.com/" title="Git" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fgit-scm.com%2F?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Git</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://git-scm.com/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">git-scm.com</div></div></div></div></a>
<p>さぁどうでしょうcentos7は落とせたでしょうか。<br />
パワーシェルで<br />
docker ps -a<br />
をしてあげたらcentos7が表示されていると思います。</p>
<p>またせっかくdocker desktopを入れたのでそちらで確認も出来ます。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-677 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1.jpg" alt="docker" width="1024" height="575" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1-300x168.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1-768x431.jpg 768w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1-120x68.jpg 120w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1-160x90.jpg 160w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000005-1-320x180.jpg 320w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
centos7がイメージの中にありますね。</p>
<p>この要領でpostgresSQLの9.6もDLします。<br />
docker pull bitnami/postgresql:9.6</p>
<p>無事イメージの取得は出来たでしょうか。</p>
<p>さてdockerの起動にはいくつか方法があります。<br />
docker run -it centos7<br />
と書いてあげれば起動します。</p>
<p>これにDBを繋いで・・・。<br />
うんやり方が分からない。難しい。<br />
ちなみに上で起動したcentos7はshellの指定なども行わないと操作できません。<br />
毎回長いコマンドを打たないといけないなんて大変だ、docker難しい・・・。</p>
<p>そんな事はありません。<br />
毎回指定してあげないといけない物はdocker-composeファイルに書いて置いて、それを元に起動してあげればあら不思議。<br />
とっても簡単にDBとの連携も共有フォルダも全部やってくれます。</p>
<p>さぁさぁcomposeファイルを作りましょう。<br />
先ほど作成したdockerフォルダの中に<br />
docker-compose.yml<br />
というファイルを作りましょう。</p>
<p>このファイルはvisual studio codeで開けます。<br />
多分メモ帳でも開けるのですが、何かしらのエディタをオススメします。<br />
というのもこのymlファイルは段落で設定の重要さ？を判定しているので段落がずれると正常に起動しません。<br />
要は段落が分かればいいので、スペースなどが可視化できるエディターの方が書きやすいです。</p>
<p>では中身を見てみましょう。</p>
<p>↓ここから中身</p>
<pre>

version: '3.7'

services:
  web2:
    container_name: "centos"
    image: centos:centos7
    volumes:
      - C:\project\docker\data:/home/data
    privileged: true
    command: /sbin/init
    tty: true
    ports:
     - 8080:80

  postgres:
    image: bitnami/postgresql:9.6
    restart: always
    environment:
      POSTGRES_HOST_AUTH_METHOD: 'trust'
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: pikatyuu4188
      PGPASSWORD: pikatyuu4188
      POSTGRES_DB: mydb
      TZ: "Asia/Tokyo"
    ports:
      - 5432:5432
    volumes:
      - C:\project\docker\postgres:/var/lib/postgresql/data
 
volumes:
  web1:
  postgres:
</pre>
<p>↑ここまで中身<br />
とりあえず上記をコピペして保存して下さい。</p>
<p>私も分かっていない部分があるので、全部は説明できないのですが、まず</p>
<div class="info-box">version: &#8216;3.7&#8217;←これは自分で好きに変えていい数字ではなくcomposeファイルの書き方が3.7だという事になります。<br />
web2:←ここは好きに変えてOKです。docketの中に入るときにコレを指定するので長すぎると覚えるのが大変だよねという位です。<br />
image: centos:centos7←これはそのイメージを使うよという意味になります。<br />
volumes:←これは左側がwindowsのパスで右側がdockerの中のパスになります。windows側は相対パスでもいけるかもしれませんが私はダメだったので絶対パスにしています。<br />
privileged: true<br />
command: /sbin/init<br />
tty: true　←この辺りは中で操作できる様のおまじないだと思って下さい。<br />
ttyは中でデーモンがゾンビ化するのを防ぐとかだったと思います。<br />
ports:←これはwebサーバーの通り道やDBの通り道になります。<br />
察しのいい方はwebサーバーのポートとposgreのポートだと分かりますね。</p>
<p>DB側の設定については何となく予想がつくと思います。<br />
laravelなどをインストールした後、この値でDBに繋ぐ事が出来ます。<br />
勿論ユーザー名モロモロ変えちゃってOKです。</div>
<p>そういえば大事な事を書き忘れていました。<br />
起動の前に共有フォルダをwindows側で作ってあげておかないとダメです。<br />
上の設定通りだとdockerフォルダの中に[data]と[postgres]フォルダを作ってあげてください。</p>
<p>さぁ準備が出来ました。<br />
パワーシェルで<br />
docker-compose up -d<br />
と打ってください。<br />
数秒でコンテナが出来上がります。</p>
<p>エラーが出た方は突っ込みお願いします。<br />
docker desktopでも起動しているのが分かりますね。<br />
※dockerコンテナは既にあって作れなかったのでcentosとしています<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-679 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1.jpg" alt="docker" width="1024" height="578" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1-300x169.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1-768x434.jpg 768w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1-120x68.jpg 120w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1-160x90.jpg 160w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000006-1-320x180.jpg 320w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>では中に入ってみましょう。<br />
パワーシェルで<br />
docker-compose exec web2 /bin/bash<br />
と打ち込んで下さい。<br />
[root@c5453bb31251 /]#　みたいな表示に変わったでしょうか。<br />
これで後はこの中でnginxを入れたり、phpを入れたりするだけです。</p>
<p>ただ気になる点がある方もいるかもしれません。<br />
パワーシェルで操作するのかよ！そうです、割とやりにくいです。<br />
私も最初tera-tarmで繋ごうと思ったのですが、ググったり設定している最中にdockerは外部から接続するのはナンセンスという事だったのでパワーシェルで操作しています。<br />
どうしても見た目が・・・という方はgit bashを使う方法があります。<br />
git bashはgitを入れると一緒についてくるコンソールツールで見た目もなかなかいいです。</p>
<p>これを使うにはgit bashのexeまで行ってまずショートカットを作ります。<br />
そのショートカットのプロパティで作業用フォルダの中を空にして今作ったdockerフォルダの中に入れてあげます。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000007-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-680 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000007-1.jpg" alt="git bash" width="415" height="597" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000007-1.jpg 415w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000007-1-209x300.jpg 209w" sizes="auto, (max-width: 415px) 100vw, 415px" /></a></p>
<p>これでOKらしいのですが、私の環境だとdockerの中の現在位置が表示されなかったのでなくなくパワーシェルで作業しています。<br />
パワーシェルだとディレクトリが非常に見にくいので(青背景に青文字)なんで青なんだ！と思いますが、コンテナを設定してイメージをセーブしてしまえば対して使わないのでめちゃめちゃ使う時が来たらその時また考えます。<br />
追記：少し調べたら背景色はすぐ変更出来ました。</p>
<p>Color Toolというのを使うとパワーシェルの表示が変えられるっぽいのですが、なぜかコマンドプロンプトがpopになりましたｗ<br />
まぁ背景色を変えるだけで大分みやすいので問題ないです。</p>
<a rel="noopener" href="https://mimimopu.com/windows-powershell-color-font-change/" title="https://mimimopu.com/windows-powershell-color-font-change/" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fmimimopu.com%2Fwindows-powershell-color-font-change%2F?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://mimimopu.com/windows-powershell-color-font-change/</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://mimimopu.com/windows-powershell-color-font-change/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">mimimopu.com</div></div></div></div></a>
<p>さて話が脱線してしまいましたが、コンテナで作業した後イメージにセーブしないといけません。<br />
今はdockerの中にいると思いますが、exitコマンドで一度抜けて下さい。<br />
その後docker ps してあげます。<br />
<a href="https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-1.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-681 size-full" src="https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-1.jpg" alt="docker" width="1024" height="440" srcset="https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-1.jpg 1024w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-1-300x129.jpg 300w, https://blog.gorone.site/wp-content/uploads/2021/11/WS000008-1-768x330.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
今起動中のコンテナが表示されます。</p>
<p>何か作業をして残しておきたい時はイメージをセーブすればOKです。<br />
セーブするコマンドは、<br />
docker commit [コンテナのID] [好きな名前]<br />
です。</p>
<p>もし画像の状態のcentosをセーブするなら<br />
docker commit c5453bb31251 test<br />
の様になります。</p>
<p>正直この運用方法がdocker的に正しいのか分かりませんが、作業履歴が残せます。<br />
もっと正しい運用方法があれば教えてください！</p>
<p>さて上のコマンドでtestイメージが作られました。<br />
次回からはこのtestイメージを使う訳ですが、docker-composeを少し変えてあげるだけです。</p>
<pre>

version: '3.7'

services:
  web2:
    container_name: "centos"
    image: test:latest　←ココを変えただけ
    volumes:
      - C:\project\docker\data:/home/data
    privileged: true
    command: /sbin/init
    tty: true
    ports:
     - 8080:80

  postgres:
    image: bitnami/postgresql:9.6
    restart: always
    environment:
      POSTGRES_HOST_AUTH_METHOD: 'trust'
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: pikatyuu4188
      PGPASSWORD: pikatyuu4188
      POSTGRES_DB: mydb
      TZ: "Asia/Tokyo"
    ports:
      - 5432:5432
    volumes:
      - C:\project\docker\postgres:/var/lib/postgresql/data
 
volumes:
  web1:
  postgres:
</pre>
<p>セーブする際に毎回同じイメージ名でコミットするなら常に最後のセーブポイントから復帰できますし、イメージを自動で上書きしてくれるので余計なイメージを量産する事にもなりません。<br />
逆に分けたい場合はイメージ名を変えてあげればOKです。</p>
<p>ちょっと長くなってしまいましたが、docker desktopの使い方は以上になります。<br />
もっと賢い使い方もあるかもしれませんが、私自身初級者なので是非教えて下さい。</p>
<p>肝心にlarabelのインストールについてですが、作業自体は全く同じなので、vagrant編の[まずはnginxを入れてみよう]あたりから参考にしてみて下さい。<br />
同じcentos7なので全く同じ作業で入るはずです。<br />
ここが分からないなどあれば突っ込みお願いします。</p>
<a href="https://blog.gorone.site/archives/650#toc4" title="laravel8開発環境セッティング(vagrant編)" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-160x90.png 160w, https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-120x68.png 120w, https://blog.gorone.site/wp-content/uploads/2021/07/cat-1204324_1280-320x180.png 320w" sizes="auto, (max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">laravel8開発環境セッティング(vagrant編)</div><div class="blogcard-snippet internal-blogcard-snippet">laravel8がインストール出来ないという方向けに書いてみます。まずは仮想環境を用意しましょう。というのも筆者がxamp環境でインストールした事が無いのでやり方が分かりません^^;仮想環境を使えばサクっと出来上がるので、まだやった事が無い人は挑戦してみましょう。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://blog.gorone.site" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">blog.gorone.site</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.11.06</div></div></div></div></a>
<p>投稿 <a href="https://blog.gorone.site/archives/672">laravel8開発環境セッティング(docker編)</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/672/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>開発環境構築の話</title>
		<link>https://blog.gorone.site/archives/647</link>
					<comments>https://blog.gorone.site/archives/647#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Wed, 27 Oct 2021 12:29:31 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[趣味]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[vagrant]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=647</guid>

					<description><![CDATA[<p>目次 DBのデータって外に保存しない方が良い？ちょっと脱線visual stadio codelaravel DBのデータって外に保存しない方が良い？ あくまで開発環境の話であって、個人開発の話では無いです。 開発環境を [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/647">開発環境構築の話</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">DBのデータって外に保存しない方が良い？</a><ol><li><a href="#toc2" tabindex="0">ちょっと脱線</a><ol><li><a href="#toc3" tabindex="0">visual stadio code</a></li><li><a href="#toc4" tabindex="0">laravel</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">DBのデータって外に保存しない方が良い？</span></h2>
<p>あくまで開発環境の話であって、個人開発の話では無いです。</p>
<p>開発環境を配る時ってDBにデータが投入されていた方が便利ですよね。<br />
前の会社では結構な規模だったので、開発環境はAWSの開発環境用のDBに繋がる様に設定されていました。<br />
前の会社が結構特殊で仮想環境などを使わずに一人1台？EC2を配るというなかなか豪快な環境だったので、かなりレアだと思うのですが、<br />
基本的にDBにはデータが投入されていた方がいいと思うのです。</p>
<p>seedsなどでテストファイルをDB作成時に作るのもいいですが、そこのファイル容量は手間を考えればあった方が良さそう。<br />
今、個人開発しているlaravelのアプリもデータ永続化の為にwindows上にデータを持たせていますが、DBのイメージをセーブすれば多分データは残るはず？</p>
<p>さすがに永続化のデータを配るならDBのイメージを共有した方がいいはず。<br />
ん～でも開発環境と言えど、新規のデータ、新鮮なデータを共有した方が良さそうなのでDBだけでクラウド上で共有した方がいいかもですね。</p>
<h3><span id="toc2">ちょっと脱線</span></h3>
<p>私は開発にブランクがあるので、開発に使うツール類の進化が凄いです。<br />
それはエディターにも言える事だし、FWもめちゃ進化してます。<br />
特にvisual stadio codeとlaravelにはびっくりしました。</p>
<h4><span id="toc3">visual stadio code</span></h4>
<p>ATOMではプラグインだったcssの色表示も標準で搭載されているし、なんかもっとカスタマイズするともっと便利になるみたい。<br />
コード自動実装機能は本当にあるし、マイクロソフトの本気ですね。<br />
元々visual stadioは便利だったので、その技術をweb向けにカスタマイズした感じですね。</p>
<p>tailwindのプラグインとCSSセットを使うと何やらもっと凄いっぽいですが、まだ試してないですね。<br />
bootstrap版とかもあるのでしょうか。</p>
<p>まだこのエディタの10%も使いこなせていないので、早く慣れない所です。</p>
<h4><span id="toc4">laravel</span></h4>
<p>web職人の為のFWとどこかでみた気がしますが、私が触ってみた感想としては、web初心者向きのFWですね。<br />
個人認証機能もガッチリした物がついていて、cssとかjavascriptもlaravel mixで構文をチェックしてくれる。<br />
まぁガッチリ触ってないので、何ともですが、フォルダのジャンル分けが分かりやすい。</p>
<p>とりあえずMVCの置き場所だけ覚えればいいし、rootファイルも分かりやすい。<br />
後地味に凄いのが<br />
Route::resource<br />
と書くと7?8種類のcludが自動生成される事です。</p>
<p>そのコントローラーも<br />
php artisan make:controller コントローラー名 &#8211;resource<br />
と書くと動きに合わせたコントローラーを自動生成してくれます(メソッドは定義してくれるけど、中身は空です)</p>
<p>良く使い方が分からず、無理やり作った部分もありますが・・・。</p>
<p>キレイに書くならresourceに合わせて書いて、力技でも実装出来るのがいい所ですね。<br />
ただ、その分表示速度は犠牲になっているみたいです。<br />
venderをオーバーライドしただけでモッサリしたので、何かチューニングが出来るのかな？<br />
モッサリ部分を感じさせない工夫が必要かもしれないですね。<br />
勿論いいサーバーを使えば早いでしょうが。</p>
<p>話は変わりますが、数年前にrailsを試した時はその便利さとチュートリアルのテストがかなり難しい。<br />
正直機能と同等かそれ以上のテストを書いた気がします。</p>
<p>laravelは必要部分だけつまみ食いしたのでテストは書いてないんですよね。<br />
書くとしてもDBの登録部分とかになるけど、やっぱり業務で使うとなるとテストは大事なのでそこは勉強しておきたいです。</p>
<p>正直PHPで新規でアプリを作るならlarabel一択だと思います。<br />
一応cakeとかも触ってますが、断トツで分かりやすい。<br />
といつつPHPはFWが豊富なのでまだ試していないのがたくさんあります。</p>
<p>PHPはアカデミックな言語ではないですが、HTMLに埋め込める部分が強いのかなと思います。<br />
あまり良い使い方では無いですが、viewの中でPHPを実行したりと結構めちゃくちゃできます、他の人に怒られます・・・。</p>
<p>とりあえずまずは、PHPとreactかvueを素で書ける様に勉強します（実際は遊んでるだけなのですが・・・）<br />
その次はせっかくmacもあるのでswiftを書けるようになりたいです。</p>
<p>以上、願望でした。</p>
<p>投稿 <a href="https://blog.gorone.site/archives/647">開発環境構築の話</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/647/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>dockerの話3</title>
		<link>https://blog.gorone.site/archives/645</link>
					<comments>https://blog.gorone.site/archives/645#respond</comments>
		
		<dc:creator><![CDATA[gorori]]></dc:creator>
		<pubDate>Tue, 26 Oct 2021 10:44:46 +0000</pubDate>
				<category><![CDATA[日記]]></category>
		<category><![CDATA[趣味]]></category>
		<category><![CDATA[docker]]></category>
		<guid isPermaLink="false">https://blog.gorone.site/?p=645</guid>

					<description><![CDATA[<p>ちょっとは理解できたかな 今個人開発しているアプリをvagrantからdockerに移す為に試行錯誤しておりました。 最終的にdocker-composeに書いているのは下記になります。 version: &#8216; [&#8230;]</p>
<p>投稿 <a href="https://blog.gorone.site/archives/645">dockerの話3</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<h2>ちょっとは理解できたかな</h2>
<p>今個人開発しているアプリをvagrantからdockerに移す為に試行錯誤しておりました。<br />
最終的にdocker-composeに書いているのは下記になります。</p>
<div class="code">
version: &#8216;3.7&#8217;</p>
<p>services:<br />
  web1:<br />
    container_name: &#8220;laravel&#8221;<br />
    image: laravel:latest<br />
    volumes:<br />
      &#8211; C:\project\docker\data:/home/data<br />
    privileged: true<br />
    command: /sbin/init<br />
    tty: true<br />
    ports:<br />
     &#8211; 8080:80</p>
<p>  postgres:<br />
    image: bitnami/postgresql:9.6<br />
    restart: always<br />
    environment:<br />
      POSTGRES_HOST_AUTH_METHOD: &#8216;trust&#8217;<br />
      POSTGRES_USER: postgres<br />
      POSTGRES_PASSWORD: pikatyuu4188<br />
      PGPASSWORD: pikatyuu4188<br />
      POSTGRES_DB: mydb<br />
      TZ: &#8220;Asia/Tokyo&#8221;<br />
    ports:<br />
      &#8211; 5432:5432<br />
    volumes:<br />
      &#8211; C:\project\docker\postgres:/var/lib/postgresql/data</p>
<p>  pgadmin:<br />
    image: dpage/pgadmin4<br />
    restart: always<br />
    ports:<br />
      &#8211; 81:80<br />
    environment:<br />
      PGADMIN_DEFAULT_EMAIL: info@mebbe.info<br />
      PGADMIN_DEFAULT_PASSWORD: password<br />
    volumes:<br />
      &#8211; C:\project\docker\pgadmin:/var/lib/pgadmin<br />
    depends_on:<br />
      &#8211; postgres</p>
<p>volumes:<br />
  web1:<br />
  postgres:<br />
  pgadmin:
</div>
<p>突っ込み所はあると思います。<br />
まずposgreが10未満な所。<br />
これには理由があって、元々最新verで動かしていたのですが、web1の方も読み取る側として10以上にする必要があったのですが、リポジトリがすんなり追加出来たら良かったのですが、エラーが出る・・・。<br />
色々設定してもエラーが出る・・・。<br />
という訳で結局元のposgreを10未満にする事で対処しました。(posgreは10以上から少し認証方式が変わった)</p>
<p>10未満にすることでマイグレーションもすんなり通りました。</p>
<p>後はdockerの知識として覚えた所はコンテナはプロセスを切ったら状態がリセットされる。<br />
私が何回か起動させたり、停止させたりしてたまに状態が残っていたのはたまたまか想定外の挙動だと思われます。<br />
基本的に状態を保持するにはイメージをセーブしてそれをロードする事が基本みたいです。</p>
<p>ここはvagrantの方がちょっと便利かなと思いました。<br />
vagrantはDBもサーバーもまるっと保存しているので、容量は大きくなるけど、その反面イメージを呼び出すだけで環境が再現されるので便利です。<br />
dockerもcomposeファイルを作ってしまえば同じですが、ツールはあるかもしれませんが、基本セーブする手間があるのでそこは使い方の違いですね。<br />
今回はDBだけ外出しにしましたが、nginxや言語、FWまで外出し出来る様なのでどこまで細分化するかですね。</p>
<p>環境が決まっていれば大きいイメージを作ってもいいと思いましたが、今回みたいにDBのverの切り替えなど手軽に行えるので正直どっちでもいいですｗ<br />
難しいと思っていたイメージ同士の繋ぎもcomposeファイルに定義してしまえば簡単に出来ますしdockerのイメージが少し変わりました。</p>
<p>ただDBのデータを永続化するためにデータをホスト側に持たせる為に共有フォルダにする辺り、上手くいっているかまだ不明です。<br />
ただこれも、ちゃんと方法が分かればふ～ん程度です。</p>
<p>色んなOS、FWや言語を試したい方には凄くいいツールだと思いました。<br />
まだ軽さとかはあんまり実感出来てないです。<br />
検索するとvagrantより軽いみたいですが、そもそもvagrantも重いと感じた事が無いので・・・。</p>
<p>まだm1 Mac版は正式リリースされてない？みたいなのでそれがリリースされれば入れてみたいです。<br />
とりあえず、dockerを食わず嫌いしていたので、その部分は解消出来たので良かったです。</p>
<p>投稿 <a href="https://blog.gorone.site/archives/645">dockerの話3</a> は <a href="https://blog.gorone.site">ゴロ寝</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gorone.site/archives/645/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
