仮想環境コンテナ総合スレ Docker、Vagrant等 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/02/16(木) 18:01:04.48ID:rGWDv0Eb
開発に仮想環境やコンテナを使う機会が多くなってきたので、みんなで情報交換しませう

よろしこ
2018/11/30(金) 23:53:07.83ID:VjmtC3o0
シェルスクリプト・PowerShell の代わりに、VSCode で、Ruby を使えば?

Windows でも、普通にファイル操作できる。
ただし、irb だけは日本語でバグるから、WSL のirb を使う

日本語では、WSL のirb は、MSYS2 よりも正常に動く
2018/12/01(土) 07:43:14.49ID:R+goIYNS
うーん正確な用語がわからない・・

そのVSCodeとRubyの方を仮想かしてどこでも同じ使い勝手を味わいたいんだ
そっちの実作業環境を開発環境と呼ぶのは変なのかな
2018/12/01(土) 14:14:31.04ID:UYaQWlEF
docker へrdpで解決しない?
667デフォルトの名無しさん
垢版 |
2018/12/11(火) 16:27:30.38ID:3Bi3MN4D
サイトの管理を任されたけど、今 vagrant とdockerとかで
環境構築するのが当たり前なの?
もう、MAMP XAMPでローカルに構築する時代じゃないの???
2018/12/11(火) 16:35:45.97ID:Hrs/4e8e
vagrantは開発専用。これでサイト構築はまず無いだろ

> もう、MAMP XAMPでローカルに構築する時代じゃないの???
vagrantかWSLのほうがいいだろ?
実際の動作環境がLinuxなのにWindowsで環境作るほうが面倒
2018/12/11(火) 22:04:25.79ID:ihMfYHRY
Software Design 12月号の特集は、Python のAnsible

Vagrant, Chef に挑む巨人、Red Hat の猛攻が始まった!

以前は、すべての開発者は、Vagrant の作者で、今世紀最大の創業者、
Mitchell Hashimoto (HashiCorp)を避けて通ることはできないと言われていた

その常識に、赤い巨人が挑む!w
2018/12/12(水) 00:11:08.47ID:ygJIxGmd
>>667
俺の知ってる現場でもみんなvagrantだな
そういう時代なんだと思う
671デフォルトの名無しさん
垢版 |
2018/12/12(水) 19:59:55.07ID:02lWEJYc
VirtualBoxとVagrant を使って開発って
WEBアプリケーション以外にも使われることはあるんですか?

例えば、スマホアプリとか。
2018/12/14(金) 13:43:43.35ID:/HfC9/Wt
>>671
あるよ
2018/12/14(金) 13:48:00.36ID:f5Y1ye2A
ありまぁす
2018/12/19(水) 14:49:06.19ID:QzBRL+7W
WindowsでDocker (Hyper-V)とVirtualBoxが共存可能になったってよ 
2018/12/20(木) 07:07:45.57ID:S5A+WF/L
vagrant/terraform
container linux
ansible
docker
kubernetes
Istio
gcp/aws/azure
この辺のキーワード聞くことが多くなってきたが覚えること大杉てしぬ
2019/01/22(火) 19:13:09.57ID:C76SXNc4
クラウドでコンテナを運用するとしたら規模の小さめなサービスでもk8sが鉄板なんすか?
2019/02/01(金) 22:44:34.29ID:h+AyUO7a
Ansible使ったらshellだらけになった
2019/02/25(月) 14:14:19.25ID:N3uaxGmA
vagrantのguestosをオフライン環境でバージョンアップさせる方法教えてください
2019/03/01(金) 01:33:46.52ID:vZN7gNkq
本番運用の環境でDockerCE (Docker for Windows) の Linuxコンテナを使ってるんだけど、
たまにポートフォワードがうんとも寸とも言わなくなることがあるんだけど、そういうもん?

具体的にはNGINXのコンテナを作って外からの443をNGINXに向けるようにしてるんだけど、
突然ポートフォワード出来なくなる。TCPパケットダンプしても明らかにコンテナに流れてない。
んでDocker自身を再起動したら復帰する

運用環境としては怖すぎなんだけど・・・
2019/03/01(金) 08:42:16.02ID:GsQvlv9z
Docker は本家 Linux でも本番環境だとわりとトラブるって話を1年くらい前に聞いたな。
利用は開発環境やステージング環境までにして
本番はネイティブにした方が無難なような。
2019/03/01(金) 12:21:06.68ID:gSOngWNj
設定ミスの可能性もあるだろう
マネージドのDocker Hostをレンタルして同じ構成で動かしてみたらどうだ
682679
垢版 |
2019/03/01(金) 22:02:26.08ID:vZN7gNkq
設定ミスの可能性は無いです
2019/03/01(金) 22:40:15.67ID:jYXMQwAm
確認した?
エビデンスとったか?
2019/03/01(金) 22:55:07.01ID:GsQvlv9z
tcpdumpの結果でわりと十分なエビデンスだろう。
突然パケットが流れなくなるような設定間違いってなかなかできない。
2019/03/01(金) 23:02:50.07ID:jYXMQwAm
>>684
全く「設定ミスがない」ことのエビデンスになってない
それじゃただ単に現象を確認しただけだ
2019/03/02(土) 10:11:20.28ID:Ujga9lQn
>>685
「『全く』設定ミスがない」ことのエビデンスなんて現実的なコストでは提供不能だよ。
特に設定不足系は無理。
ふつうはそんな効率の悪いやり方をしない。
まあ金融・証券系みたいにコスト無視、かつ顧客が無理難題をふっかけるとこだと、顧客が納得するレベルの嘘をついて誤魔化すことはあるけどさ。
2019/03/02(土) 10:37:21.55ID:Ujga9lQn
「Docker network stopped working 」でググるといっぱい見つかるね。
未解決のも多い。

ttps://github.com/moby/moby/issues/32195
なんかはSolved になってるけど
・(正常なネットワークなら問題ない筈の)先進的なネットワークオプションをとにかくdisableせよ
・Docker のバージョンを上げろ
ってなってて、Docker か、あるいは利用しているネットワーク環境のどちらかに不具合があるっぽい。
2019/03/02(土) 11:08:33.63ID:heck9gfN
>>686
俺がなんで括弧つけたかわかってないな

「全く設定ミスがない」こと証明してないと言いたいのではない
「設定ミスがない」ことを全く証明してないと言ったのだ
2019/03/02(土) 11:27:53.49ID:Ujga9lQn
>>688
ふつうは正しく動作することをもって証明とするんだよ。
数学的な意味での証明には全くならんが、現実的なコストでできる証明ってのはそれくらいしかないんだ。

くだんの人の場合、一応正しくは動作してるのに、しばらくすると止まる、しかもtcpダンプしても止まってるんだから、
症状からしてなにか不具合がある可能性が高い。

そうじゃない、証明する方法があるんだっていうのなら、その方法を具体的に書いてやってくれ。
2019/03/02(土) 11:35:40.93ID:heck9gfN
>>689
もうとっくに書いてんじゃん
マネージドなdockerホスト借りてやってみたらどうだってさ

何も設定項目1つ1つ変更しながらエビデンスとれって言ってるわけじゃないんだよ
適度なサイズのスコープで切り替えながら調査していくの
これって問題調査の基本中の基本だよね?

君が言ってる現実的じゃない方法って
アルゴリズムに例えて言うと線形探索なんだよ
でも俺らは二分探索とか範囲で絞り込むアルゴリズムを知ってるわけだろ?
なんで身につけた知識を応用しないんだ?
2019/03/02(土) 11:50:11.02ID:Ujga9lQn
>>690
マネージドなDockerホストって書いてた人だったのか。
確かにそれはアリだな。

俺の言葉の使い方だとそれを設定ミスがないことのエビデンスになるとは言わないので
マネージド環境でのテストのことを指してるとは思わなかったよ。
すまんかった。

よくよく考えてみるとアホな顧客にエビデンス要求された時に
有料サービスに丸投げした結果を提供してOKもらうことはたびたびあるので
自分でも似た使い方してたなw
自分でそれがエビデンスという強い言葉に値すると思ってないから思いつかないんだなあ。
2019/03/03(日) 14:34:26.16ID:PCCGC897
issueだらけだもんなぁ
本番には到底耐えきれないよ
本番で使わないならってんで開発でもDockerを使わなくなる
だから実務で役に立つのはVagrantとAnsibleになる
2019/03/03(日) 14:43:33.70ID:LWbZmqMl
>>692
issueの数で判断できるなら、世の中のメジャーなライブラリやフレームワークはみな使えないことになる
2019/03/03(日) 15:04:33.53ID:PCCGC897
ライブラリやフレームワークに不具合があってもアプリケーションとしてのテストを通過すれば問題はない
でもDockerみたいなのになるとテストしきれないから安易に使えない
2019/03/03(日) 15:07:54.94ID:UpvIfT49
>>694
はいキチガイ
2019/03/03(日) 15:11:25.80ID:PCCGC897
>>695
いや常識だぞこれ
お前はテストしとらんのか?
2019/03/03(日) 15:45:08.26ID:tapoy5qO
>>696
ソースは?
2019/03/27(水) 18:59:14.57ID:Aic0Wt50
>>697
Rubyかな
2019/03/27(水) 22:21:53.24ID:jwVZ1lxp
ansible-containerってどうなの?
2019/04/07(日) 22:47:05.10ID:KmDkztEg
初心者なんじゃがコンテナ内のphpmyadminから別コンテナのMySQL叩くの難易度どれくらい?
2019/04/08(月) 12:14:30.85ID:flU0/mvo
難度Fぐらいかな
2019/04/08(月) 19:16:29.83ID:+ZYObKbH
USB Type Aが一発で刺さるぐらいの難易度
2019/04/08(月) 21:09:35.64ID:SeD3ldgI
本当かぁ、?何回かネットや本のコピペしてるけどMySQLとphpmyadmin連携取れないぞ、?
2019/04/08(月) 21:24:00.34ID:SqshxjrC
composeのサンプルコピペでいけるやろ
2019/04/08(月) 22:14:51.00ID:SeD3ldgI
>>704
この後またチャレンジするんだけど皆さん普通に連携取れて出来てるのよね?
本の丸コピが何回やっても動かないし何かMySQLの認証系が怪しいんだが
2019/04/08(月) 23:23:24.47ID:zFFjnYPT
compose見せてみ
707デフォルトの名無しさん
垢版 |
2019/04/09(火) 20:27:46.01ID:3Wk1Dqbm
すまん、、そこまでまだ本を読み進めてないでんねん。。下記が本のソース丸コピなんだが
////phpmyadmin編
//_mysqlとphpmyadminのDockerfile用の2つのフォルダ作成
sudo docker network create mysql-nw
sudo docker volume create --name=db-volume
sudo docker run -v db-volume:/var/lib/mysql/ --name=db-container busybox

//////mysql/Dockerfile
#イメージ取得
FROM mysql
#mysqlのrootパスワード設定
ENV MYSQL_ROOT_PASSWORD=dbpass01
#文字コードにutf8mb4をセット
CMD ["mysqld","--character-set-server=utf8mb4","--collation-server=utf8mb4_unicode_ci"]
//////
sudo docker build -t mysql-image .
sudo docker run --volumes-from=db-container --name=mysql-container --net=mysql-nw -d mysql-image

//////phpmyadmin/Dockerfile
#イメージ取得
FROM phpmyadmin/phpmyadmin
#
ENV PMA_HOST=mysql-container PMA_USER=root PMA_PASSWORD=dbpass01
//////

sudo docker build -t pma-image .
sudo docker run --net=mysql-nw --name=pma-container -p 83:80 -d pma-image
708デフォルトの名無しさん
垢版 |
2019/04/09(火) 20:29:44.42ID:3Wk1Dqbm
ちなみにこれも三行丸コピで動くらしいけど失敗したやつでなぁ
https://blog.thenets.org/how-to-install-mysql-and-phpmyadmin-with-docker/
2019/04/09(火) 21:25:20.32ID:U1rDoLSZ
docker logsは?
2019/04/09(火) 21:34:32.10ID:U1rDoLSZ
CMD["mysqld"
とりま要らんやろこの引数
711デフォルトの名無しさん
垢版 |
2019/04/09(火) 22:23:24.21ID:3Wk1Dqbm
すんまへん、、何故かイケました。メモ帳に書いてコピペしてるからそう書き間違えないはずなんだがなぜかこれで
//phpmyadmin再度
sudo docker pull mysql:5.7.24

sudo docker pull phpmyadmin/phpmyadmin

sudo docker network create mysql-network

sudo docker run --name=aa-mysql --net=mysql-network -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -v $(pwd)/database:/var/lib/mysql -d mysql:5.7.24

sudo docker run --name=a-mysql-admin --net=mysql-network -e MYSQL_ROOT_PASSWORD=password -e PMA_HOST="aa-mysql" -e PMA_PORT=3306 -p 8081:80 -d phpmyadmin/phpmyadmin
712デフォルトの名無しさん
垢版 |
2019/04/09(火) 22:24:25.42ID:3Wk1Dqbm
ちなみにこれはなぜか動かなかった
//1
sudo docker network create -d bridge my-bridge-network
//2
sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=secret -d mysql/mysql-server

sudo docker network connect my-bridge-network mysql

sudo docker inspect mysql//次のhostに付けるip確認
//3
sudo docker run --name phpmyadmin -d -e PMA_HOST=(さっきのIP) -p 808:80 phpmyadmin/phpmyadmin
713デフォルトの名無しさん
垢版 |
2019/04/20(土) 09:43:35.04ID:4fcRoJkz
クラスタ運用だとボリュームの扱いが難しい

ネットワーク経由でストレージをマウントすると遅いし所有権やシンボリックリンクの取り扱いでトラブルが起きやすい
逆にローカルストレージをマウントするとコンテナを特定のホストにピン留めせざるをえなくなって運用性が悪い

どうにかならんかねこのジレンマ
2019/04/20(土) 10:01:01.50ID:OSkkX2tB
>>713
だからクラウド使うんだよ

ストレージはクラウドサービスが提供しているものを使う
ストレージ用のコンテナは作らない
2019/04/20(土) 10:02:10.88ID:OSkkX2tB
(ただし開発時にローカルで使うものは別)
2019/04/20(土) 11:37:12.99ID:4fcRoJkz
クラウドストレージでも結局は同じなのでは?
例としてS3をVolumeとしてマウントしたとして
このVolumeはローカルストレージのVolumeよりも遅いしパーミッションとかで変なトラブルが起きやすい
この性質はイントラのストレージサービスとクラウドのストレージサービスでそう違いがあるとは思えない
2019/04/20(土) 12:03:01.10ID:k9t7GC4v
S3じゃなくてEBSじゃないのか?
2019/04/20(土) 12:04:41.14ID:OSkkX2tB
>>716
だからボリュームとしてマウントしたりしない。

アプリはデータをS3に保存するし、S3から取ってくる。
パーミッションとか関係ない。クラウドのセキュリティ機能を使う
クラウドストレージの速度はローカルストレージと遜色ない(コストによるが)
2019/04/20(土) 12:07:44.19ID:OSkkX2tB
> アプリはデータをS3に保存するし、S3から取ってくる。

補足しておくとアプリはS3のデータを読み書きするとして、

例えばユーザーはファイルをサーバーにアップロードする時、
S3に直接アップロードするしS3から直接ダウンロードする。
アプリを経由してS3のファイルを読み書きしたりしない(してもいいが遅い)

誰でもアップロード・ダウンロードできてしまうことを
防ぐためのセキュリティ機能もS3にある
2019/04/20(土) 12:13:00.81ID:OSkkX2tB
>>717
EBSを使ってもいいが、アプリの仮想マシンからブロックデバイスとしてマウントはしないんだよ。
EBSをマウントするのは(広い意味での)データベース・サーバーの一台

アプリからは、そのデータベースサーバーに対してネットワークでデータを読み書きする

複数あるアプリの仮想マシンでファイルシステムをマウント(Dockerのボリューム含む)しようという発想が古い
ストレージをマウントするのは仮想マシン1台だし、そこにネットワーク経由でアクセスする。
↑このストレージをバックアップなど含めて適切に管理するのが面倒だから、クラウドストレージを使う

いずれにしろ、アプリからはネットワーク経由でデータの読み書きをする
721デフォルトの名無しさん
垢版 |
2019/04/20(土) 12:16:17.88ID:4fcRoJkz
>>717
例として挙げただけなのでどのストレージサービスでも状況は同じ

>718
ストレージサービスをネイティヴサポートしてない他社製アプリはVolumeマウントするしかないと思うけど違うのかな?
オープンソースならフォークしてファイルアクセスを全てストレージサービスに置き換えることはできなくはないけど労力に到底見合わない
だからどうしてもVolumeマウントに頼らざるをえないケースは多々ある
そういうケースにステートフルコンテナをクラスタに組み込むにはどうするべきか悩ましい
2019/04/20(土) 12:23:55.77ID:OSkkX2tB
>>721
だからな? 新しい仕組みを活かそうと思うなら、
設計から見直さなきゃいけないんだよ。

効率化する新しい仕組みを導入したいのですが
今までの効率の悪いやり方まま変えたくないんです。

↑アホみたいだろ?

やり方を変えないなら、今までのやり方をするしか無いんだよ。
諦めな
2019/04/20(土) 12:44:59.88ID:4fcRoJkz
>>722
設計を見直すと言われても他社製だからな…
従来のようにバックアップとリストアをしっかり整備して多少のリスクを受け入れるぐらいしか思い浮かばん
ダウンタイムはともかく直近のデータロストは怒られそうできつい
2019/04/27(土) 15:43:09.76ID:baIKmTTh
docker hubがハックされてgitアカウントが19万ぐらい失効されたらしい?
2019/04/27(土) 16:16:17.11ID:yNGf8etV
それマ?
2019/04/27(土) 17:32:00.76ID:kFhbr7Mc
取り急ぎググった結果出てきたものを貼ってみる

https://www.bleepingcomputer.com/news/security/docker-hub-database-hack-exposes-sensitive-data-of-190k-users/

By Lawrence Abrams
April 26, 2019 11:30 PM
2019/04/28(日) 22:00:11.04ID:tlREWRu1
dockerのGUIでの監視や起動停止とかでまだまともなのないかね?
2019/04/28(日) 22:10:41.17ID:JJw12cyB
portainer?
2019/05/02(木) 11:48:40.72ID:ERhnQ0op
DockerってEEにするとなんか嬉しいの?
2019/05/28(火) 09:41:24.81ID:6fYBY9pC
>>729
サポート
2019/06/06(木) 12:33:59.71ID:JqHKbft5
5人のチームのローカル開発環境を同じにしたい場合VagrantとDockerどちらが楽だろ?
VagrantfileとDockerfileのどちらが簡単かという話になるのかな?
2019/06/06(木) 20:02:59.18ID:CyvVQuy9
そりゃあVagrantだろ
変なトラブルが少ない
開発デスクトップも仮想化できる
環境の再現性がたかい
Linux+Windows混在も楽々

ただしターゲットがDockerの場合に限りローカル鯖もDockerにした方がいい
それは当然のことだな
その場合でも開発デスクトップはDockerを使わないほうがいい
2019/06/06(木) 21:31:04.71ID:jO1/nBmB
開発に使えないものを本番環境に投入とか論外なわけで
Dockerの使いどころが...
(それを言っちゃあおしまい)
2019/06/06(木) 21:50:38.63ID:CyvVQuy9
使えるか使えないかの問題じゃなく楽かどうか
本番でDockerを使わないなら本番環境はDockerへの配慮なんてしてない構成になってるはず
その構成をローカルに再現するときにDockerを使うかVagrant/Ansible使うのどっちが工数少ないかってことだ
少なくとも本番環境の構築手順書があるのだから完全仮想化環境で同等の環境を再現するのはさほど難しくない
しかしDockerだとどうしても構成の整理と手順書の読み替えと動作確認が求められてくるので面倒だ
735デフォルトの名無しさん
垢版 |
2019/06/06(木) 22:06:41.88ID:ud71ci3d
なるほど
2019/06/06(木) 22:37:50.73ID:XICmRaWP
>>731
> 5人のチームのローカル開発環境を同じにしたい場合VagrantとDockerどちらが楽だろ?

何度も言ってるが、仮想マシン(Vagrant)とアプリ仮想化(Docker)は
組み合わせて使うものです!

どちらか一方を使うんじゃない。役目が違うんだから両方使う
2019/06/06(木) 22:53:48.83ID:XICmRaWP
大前提としてな。開発環境と本番環境は同一に出来ないんだよ。
可能不可能の話じゃなくて、そんな事やるやつは馬鹿という意味で同一に出来ない

開発環境はVagrantで作るが本番環境はAnsibleなどで作る
開発環境には便利なテキストエディタやIDE、ヘッダファイル、静的解析ツール
その他便利なコマンドなど、いろんなものを入れる必要がある。


それに対して本番環境はそれらは入れない。セキュリティリスクにつながるし
メンテナンス性も考えなるべく小さなイメージにしておく


開発環境と本番環境は同一でないという前提で、
開発環境でどうやってテストするか?という話が出てくる
本番環境に近い環境でないとテストに自信が持てないのは当然

そこでDockerがでてくるんだよ。開発環境で動かすDockerコンテナと
本番環境で動かすDockerコンテナを同一に(もしくは限りなく近く)することで
開発環境と本番環境が違っていても、信頼性のあるテストが実行できる

そうするとDockerコンテナさえ同じであれば、開発環境を統一する意味もなくなる
開発環境がLinuxであってもWindowsであってもMacであっても、
同一のDockerコンテナを使うのだから、信頼性のあるテストが実行できる

だから今はVagrantを使って開発環境を統一するメリットが減ってる。
統一したいならしてもいいが(それは開発者の自由を奪うというデメリットでもある)
統一しなくても良いのが今の開発
2019/06/06(木) 22:59:53.57ID:CyvVQuy9
>>737
本番環境が全てDockerという幻想の上でしか成立しないな
本番環境がDockerでないなら開発環境でDockerを使うと逆に再現性が低下する
2019/06/06(木) 23:00:18.06ID:XICmRaWP
最初の質問に戻るとだな

> 5人のチームのローカル開発環境を同じにしたい場合VagrantとDockerどちらが楽だろ?

「ローカル開発環境を同じにしたいならVagrantを使う」
それと同時にDockerも使う

Dockerを使うなら、ローカル開発環境を同じにする意味はさほどない
同じにしないなら Vagrantを使わなくて良い。Dockerだけ使う

これは「ローカル開発環境を同じにしたい場合にDockerが楽」と言ってるのではなくて
「ローカル開発環境を同じにしないならVagrantはいらない」という意味
だから「ローカル開発環境を同じにしたいならVagrantを使う」ということは否定していない

使う目的が違うのだから、どちらを使うか?っていう話にはならない
2019/06/06(木) 23:01:01.11ID:Qxsak61t
漏れは、Chef
2019/06/06(木) 23:02:43.90ID:XICmRaWP
>>738
もう今は本番環境でDockerを使うのは常識

仮に本番環境でDockerを使わないとしても、
本番環境と同じ環境をDocker以外で作るのは困難

開発環境用VM(Vagrant)と本番環境用VM(Vagrant)の
2つを作るのは重いだけ
2019/06/06(木) 23:04:50.40ID:XICmRaWP
訂正

開発環境用VM(Vagrant)と本番環境"再現用"VM(Vagrant)の
2つを作るのは重いだけ

本番環境用VMといってしまうと、これを本番環境で使うように思えてしまうので訂正
実際の本番環境はVagrantでは作らないので、本番環境そのものにはならない
高い再現性を求めるなら、開発環境でも本番環境でもDockerを使うのがベスト
2019/06/06(木) 23:07:20.25ID:XICmRaWP
開発環境と本番環境が違っていても
Dockerコンテナは同じですよーっていうのが
Dockerを使うメリットなわけだ
2019/06/06(木) 23:28:00.71ID:CyvVQuy9
>>741
そんな常識ないよ
あほくさ
2019/06/06(木) 23:37:25.82ID:XICmRaWP
根拠なく、ないよとか言われてもなw
2019/06/06(木) 23:39:58.31ID:CyvVQuy9
>>745
お前が言うのかそれ
2019/06/06(木) 23:41:53.19ID:XICmRaWP
kubernetesとかほぼDocker前提だし
2019/06/06(木) 23:43:28.93ID:XICmRaWP
vagrantは "開発環境を作るためだけ" のものだが
Dockerはソフトウェ開発全般で使う
749デフォルトの名無しさん
垢版 |
2019/06/06(木) 23:45:35.65ID:P4iafl1G
k8sのdocker依存は解消されたって聞いてたんだけど…?
2019/06/06(木) 23:46:54.32ID:XICmRaWP
Vagrantはこれから使われなくなっていくよ。俺はもう使ってない。
ローカル開発環境を同じにしたい場合にはたしかに便利だが、
ローカル開発環境を同じにする必要がなくなってきてる。
そういう意味ではVagrantを使わないほうが良いと言える。
2019/06/06(木) 23:47:29.19ID:XICmRaWP
>>749
依存してなくても事実上Dockerを使うのが現時点ではベストという話
2019/06/06(木) 23:51:42.77ID:CyvVQuy9
>>748
Vagrantは本番環境でも使えるしDockerを使わない開発も未だに無数にある
Dockerのメリットは確かに大きいがそれなりのデメリットも同時に抱え込んでしまう
Dockerでやるべき明確な理由がないなら使う必要はない
2019/06/06(木) 23:55:24.99ID:XICmRaWP
> Vagrantは本番環境でも使えるし
使えるが使わん。
2019/06/06(木) 23:56:47.52ID:XICmRaWP
https://www.vagrantup.com/
Development Environments Made Easy
^^^^^^^^^^^^^^^^^^^^^^^^^^^

「開発環境を簡単に」と書いてあるんだから
本番環境で使おうとするな。想定外の使い方だ
2019/06/07(金) 00:01:11.20ID:AQMF0uU1
Dockerの使い方でも変なやつがいるけど
本来想定してない用途なのに、使えそうだから使おうというのは
その技術を正しく理解してない証拠なんだよな
2019/06/07(金) 00:04:50.40ID:ON5ugDpH
VagrantにできてDockerではダメな典型例だとAnsibleなど構成管理ツールの開発・テスト環境を作るときなどがあるね
当たり前だけどOSの様々な機能が制限されるコンテナは仮想マシンの代替にはなりえない
2019/06/07(金) 00:10:21.60ID:AQMF0uU1
だからVagrant(というよりVM)とDockerはどちらかを使うものじゃなくて
両方組み合わせて使うものだという話になる。

AnsibleのテストするならVMを使うのが一番。各クラウドやKVM等ね。

というかAnsibleのテストでVagrantなんて使うか?
Vagrantで作ったらVagrantユーザーがいるわけで、
それは本来のAnsible実行対象マシンとは違うものになる。
2019/06/07(金) 00:14:22.59ID:AQMF0uU1
× コンテナは仮想マシンの代替にはなりえない
○ (アプリケーション)コンテナはそもそも仮想マシンの代替として作られたものじゃない
2019/06/07(金) 00:20:56.20ID:ON5ugDpH
>>757
組み合わせて使っても良いが
常に組み合わせて使う前提のものではない

>>758
だから君のDocker万能論はちゃんちゃらおかしいということだよ
開発環境は開発対象をよく理解して適切に選ぶこと
全部DockerでOKなんてことはありえない
2019/06/07(金) 00:32:52.21ID:AQMF0uU1
あぁ、なるほど。素晴らしい気付きがあった。

Ansible(Chefなども同様だろう)を使うといった時、
playbookを作る のと playbookを実行する という2つの段階がある

playbookを作る場合は、当然テストが必要なわけだがVagrantが便利。
なぜならVMを特定の状態にして何度もplaybookをやり直すから。
具体的にはsnapshotの機能を使う(最初からvagrant boxを作り直すのもあり)

でもこれって、Ansibleに内蔵されているべき機能ではないだろうか?
Vagrantで作るVMと本番環境のVMは違っている。
本当は本番環境(を複製して)を何度も同じ状態にしてテストを実行したいはずだ
通常、本番環境のVMの構築にVagrantは使わない。Ansibleを使って構築するだろう。
ならば、Ansibleだけで本番環境のVMのスナップショットを取れたほうが良いだろう。

今はそれが出来ないからVagrantを使っている。
なるほど、これは良い発見だ!

(独り言)
2019/06/07(金) 00:33:40.26ID:AQMF0uU1
>>759
> だから君のDocker万能論はちゃんちゃらおかしいということだよ

何度もDockerとVMは組み合わせて使うって言ってるのに、
なんで俺のことをDocker万能論者に仕立て上げようとすんのさ?
2019/06/07(金) 00:34:23.77ID:AQMF0uU1
> 全部DockerでOKなんてことはありえない

そんなこと言ってない。

何度も何度もVMと組み合わせて使うって言ってるのに
2019/06/07(金) 00:45:32.53ID:ON5ugDpH
そうだな万能論は言いすぎた
しかしそれでも君の主張はDockerありきが前提にっているのは確かだろ
しかし実際にはAnsibleの例のようにDockerを使いにくい環境も存在している
だから君の主張がおかしいということには変わりはない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況