X



仮想環境コンテナ総合スレ Docker、Vagrant等 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2017/02/16(木) 18:01:04.48ID:rGWDv0Eb
開発に仮想環境やコンテナを使う機会が多くなってきたので、みんなで情報交換しませう

よろしこ
0002デフォルトの名無しさん
垢版 |
2017/02/16(木) 19:00:08.56ID:h1FUjbuC
dockerとかvagrantってそこそこいいスペックのPCじゃないと重いですか?
Core i3とかメモリ4GBとかオンボードじゃきついですか?
0007デフォルトの名無しさん
垢版 |
2017/04/09(日) 21:37:56.06ID:NCtS/3Z/
vagrantについて質問です。
ポートフォワーディングで同一LAN内の別端末からhttpアクセスしたいのですが、うまくいきません。
config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1", id: 'http'
これだとvm立ち上げたPCからはlocalhost:8080でアクセスできますが、別端末からアクセスできません。

host_ipを192.168.3.8のように指定すると、別端末から192.168.3.8:8080でアクセスできますが、他のメンバーとvagrantfileを共有する際に編集する必要があります。
host_ipを指定しないと、The requested address is not valid in its context.のエラーが出ます。

どうにかうまく他のメンバーがvagrantfileを編集する必要なく、同一LAN内の別端末からアクセスできるようになりますか?
0008デフォルトの名無しさん
垢版 |
2017/04/10(月) 01:53:00.36ID:gu5n9UXh
127.0.0.1はローカル・ループバック・アドレスと呼ばれ、
自分自身を指す特別なIPアドレスである。
「localhost」という名前でも参照できる

自分自身の上で動作しているサービスへ接続する場合は、
このIPアドレスを利用できる
0009デフォルトの名無しさん
垢版 |
2017/07/08(土) 21:31:32.08ID:8YhBgLjX
開発用の低スペックWindowsに1台で完結する環境構築するならDockerがいいんだけど
Dockerfileだとテスト以後のマシンに使えないから困る
結局、同じ構成になるようにAnsibleでplaybookを書く二重管理状態になってしまう
0010デフォルトの名無しさん
垢版 |
2017/07/17(月) 12:58:52.28ID:FthSMCL/
dockerですが何をやっても
device or resource busyです。
/var/lib/dockerも削除できません。

どうしたらDockerをリセットできますか?
気になるのは、devicemapper/mntにやたらとコンテナ?があります。
文字の羅列と同じ名称で語尾に-initがついてるもの。

これらすべでumountできません。
0012デフォルトの名無しさん
垢版 |
2017/07/17(月) 16:01:44.76ID:ka/V7JjN
仕事で使ってる人は、どういう切り分けでツール使ってるの?

vargrant イメージ管理
docker アプリケーション絡みの構成管理
ansible ネットワーク絡みの操作とか色々

dockerってあくまで開発用途?
アプリケーションをデプロイするときに、
docker環境にpushして、そのdockerコンテナを
本番環境にpushするとか冗長化してるの?
0013デフォルトの名無しさん
垢版 |
2017/07/17(月) 18:48:26.26ID:GUuZ6Fu+
自分も模索中だけどこんな感じで理解してる


Docker
アプリのカプセル化

Vagrant
仮想環境の新規作成
構成管理の起動

Ansible
すでにある環境の構成管理
0014デフォルトの名無しさん
垢版 |
2017/07/22(土) 11:45:47.29ID:S+qzOSdo
Docker vagrant Ansible ってプログラミングスキル以外に必要な
インフラスキルってどのへんまで必要なの
Linuxの基本的なディレクトリ体系知ってたり、コマンド使いこなせればOK?
デバイスとかブートレベル、ネットワークのいじり方も必要?
個別のミドルウェアの設定ファイルやいじり方も熟知していないと駄目?
0015デフォルトの名無しさん
垢版 |
2017/07/22(土) 11:56:43.12ID:0lF5kxcx
環境構築は、プログラマーよりもはるかに難しい

最低でも、LPICレベル1 は必要
0016デフォルトの名無しさん
垢版 |
2017/07/22(土) 12:40:22.35ID:S+qzOSdo
>>15
じゃあそれできればそこそこ金になる?
0018デフォルトの名無しさん
垢版 |
2017/07/22(土) 13:00:52.65ID:S+qzOSdo
>>17
いやいや金は大いに関係ある
会社が儲かっていようが無かろうが給料の配分は平等じゃない
会社が必要とするならば給料は高くなる、
上がらないならやめる。習得した技術の内容に需要があるならば
再就職先はあるはずだし、習得した技術の需要が高ければ待遇が
良くなる。だから金は関係ある。
インフラの習得は簡単ではない。しかしビジネスとインフラは直結
しないから、それを評価されうるか、金として還元されるかって超重要じゃね?
めっちゃ頑張って勉強してLPICとかとって、「動いて当たり前。資格なんて意味がない」
とかいわれたら洒落にならないよ。
0019デフォルトの名無しさん
垢版 |
2017/07/22(土) 13:12:54.56ID:0lF5kxcx
プログラマーで、環境構築・運用ができる人は、まずいない。
だから、プログラマーよりも給料が高い

まず、コマンド・シェルスクリプトを知っている者が、少ない

皆、tmux も知らないだろ。
cron もまともに出来ない。環境変数が異なるから

( ) 内は、サブシェル・子プロセスで実行されるから、
親プロセスと環境変数は共有していないとか

OS・システムの内容は、プログラムよりも、めちゃめちゃ難しいから
0020デフォルトの名無しさん
垢版 |
2017/07/22(土) 13:17:14.44ID:S+qzOSdo
>>19
OK ありがと。超やる気でたわ
0021デフォルトの名無しさん
垢版 |
2017/07/22(土) 13:55:49.21ID:XLPzVjfx
>>18
技術力でもらえる金が決まるんじゃないよw

極端な例を言えばバスの運転手が
docker使えたって給料は増えない

需要がなければ、何ができたって価値はない。
需要は会社で決まる。
0022デフォルトの名無しさん
垢版 |
2017/07/22(土) 13:58:05.91ID:XLPzVjfx
>>19
> プログラマーで、環境構築・運用ができる人は、まずいない。

そういうレベルの会社なのに給料が良いとでも?w

そうですね。

結局給料は会社が儲かってるかどうかで決まりますからね
技術力が低くてdockerなど使わないような所でも
会社が儲かっていれば、給料は高くなりますよ。
その人がうまく自分をアピールできればね
0023デフォルトの名無しさん
垢版 |
2017/07/22(土) 14:08:45.33ID:S+qzOSdo
技術者にも会社を選んだりやめたり、給与交渉したり、
「もうやらないよ?」っていう選択肢があるよ。
俺がいた前の会社には「CSSが書くのがめっちゃ速い」といって評価されている
人がいた。確かにCSSは自己アピールに最適だよ。
見た目ですぐにその人のデザインで主張できるから。ビジネス上の収益に関与できる。
WordPressもそんな感じだ。
JavaScript、サーバ側アプリケーション構築、インフラとなるにつれ
やる内容はマゾくなるわりに、外見上で評価されづらくなるよ。
だからといって「会社が儲かっているかどうかが全て」「ビジネスで成果出せ」
何ていう基準で給料がきまったら技術者なんてたまったもんじゃない。
0024デフォルトの名無しさん
垢版 |
2017/07/22(土) 14:33:59.09ID:XLPzVjfx
だからたまったもんじゃないという
世の中なんだってw

それが嫌なら、会社選ぶしかないよ
0026デフォルトの名無しさん
垢版 |
2017/07/22(土) 14:54:29.83ID:XLPzVjfx
使われてるところでは、普通に使われてるから何の評価もないし、
使われてないところでは、そもそも使わないから評価対象にならない
0027デフォルトの名無しさん
垢版 |
2017/07/22(土) 20:55:04.47ID:H9oHkZgf
データアクセス層のユニットテストにこっそりDocker使ってる
便利だとは思うけどうちはやる気のない会社だからこういう技術を正式に採用することはないだろう
0028デフォルトの名無しさん
垢版 |
2017/07/23(日) 16:06:57.33ID:cZonGhlD
GradleもDockerみたいなもんなの?
0030デフォルトの名無しさん
垢版 |
2017/07/27(木) 01:59:49.19ID:RnUpnufd
vagrant-libvirtでfedora謹製のatom box使って
起動したのは良いけれどvagrant sshで入った後
rootでもuser(vagrant guid)でも読めるが書けないdirがある
結果(sudo) setup.py install 出来ない
こまつた
0031デフォルトの名無しさん
垢版 |
2017/08/04(金) 01:35:27.22ID:75uLMW6l
>>30
そのディレクトリ chmodするとどうなるの?
0032デフォルトの名無しさん
垢版 |
2017/08/04(金) 01:49:36.34ID:6xnwiv0x
>>12
基本的に1プロセスを上げるもの = Docker(Apacheだけとか、MySQLだけとか、そういうこと)
多連装仮想マシンランチャー = vagrants
まっさらのインスタンス(仮想マシンか物理かは知らん)に定型的な設定ファイル入れたり、aptなりyumのパッケージをぶっこむ = ansible(あるいはchef)

いちおうDockerで複数プロセス上げさせることもできるっちゃできるが面倒ではある
0033デフォルトの名無しさん
垢版 |
2017/08/04(金) 02:00:18.03ID:6xnwiv0x
>>30
chmod 777 書けないdir

でやってみてどうなるかによる
で、chmodがエラーでハネられたらSELinux殺すあたりか? fedoraのatomic試したことないから知らんが
0034デフォルトの名無しさん
垢版 |
2017/08/04(金) 03:38:10.97ID:75uLMW6l
>>32
IPとかドメイン、パケットフィルタ関係のマシン外部の
設定までやりたい場合はDockerでいいの?
0035デフォルトの名無しさん
垢版 |
2017/08/04(金) 22:21:30.72ID:vbxnWqhH
>>34
そういうのはansible
ansibleでやることは
ネットワーク/セキュリティなどホスト設定
Dockerインストール
コンテナ起動
0036デフォルトの名無しさん
垢版 |
2017/08/05(土) 01:22:27.06ID:h+4+UPF9
Ansibleで冪等性という考え方を知ったときはすげぇと思ったな。
この理論は美しすぎる。
0037デフォルトの名無しさん
垢版 |
2017/08/05(土) 01:34:07.68ID:h6kT662o
>>36
まあ実際には冪等性にはならんけどなw

AnsibleだけにかぎらずChefなんかもそうだが、
「○○にする」という形で設定をすることができるが、
ここに書いたこと以外は無頓着

mysqlをインストールするという設定はできるが
PostgreSQLが入っていようが入っていまいが無頓着
PostgreSQLを消すと書かないかぎり、もしPostgreSQLが
入っていたとしてもなにもしない。

だから実行して作られた環境が必ず同じになるとは限らない
単に再度(二回以上)実行しても一回目と状態は変わらないというだけ


んで、最近はImmutable Infrastructureってことで
壊して最初からから設定して、その後変更しないので冪等性は必要なくなっている。
何度実行しても同じ状態になるではなくて一回しか実行しない。
0038デフォルトの名無しさん
垢版 |
2017/08/05(土) 01:44:19.24ID:h+4+UPF9
>>37
あれ、冪等性とImmutable Infrastructureって違う意味なんだね、
同じことを言ってるんだと思った。いやいや、勉強になりました。
そうか、それでそのImmutable指向なのがDockerやvagrantなんだね。

Ansibleは、「マシン壊さないでスクリプト再実行」
Dockerは、「マシン構築してイメージを固めて、使いたいときはそれを複製
して構築状態を再現する」って感じ?
0039デフォルトの名無しさん
垢版 |
2017/08/05(土) 01:52:14.76ID:h6kT662o
>>38
そう。書こうと思ってたけど他のスレに書き込んでいて遅れたけど、
Dockerでも完全な冪等性はない。

通常はイメージを作り直すたびに最新版として
更新が適用された形でイメージが作られる。
同じ手順でイメージを作るが、全く同じイメージができるわけじゃない。
もちろんそれは意図した動きであるので、問題あるわけじゃない。

そして全く同じものが欲しい場合は、作ったDockerイメージを使用する。


> Ansibleは、「マシン壊さないでスクリプト再実行」
そういうこと。もちろん壊してスクリプトを再実行しても良いが
アピールしている冪等性が有効に働くのは壊さないで再実行するときだけ
0040デフォルトの名無しさん
垢版 |
2017/08/05(土) 08:06:56.98ID:JaoJ8BaU
ベキ等は既存のホストでも使えるって要件とのトレードオフ
気軽に捨てていい端末だらけならこんなものは要らない
既存のマシンは簡単には壊せない
それが客の物ならなおさら
0041デフォルトの名無しさん
垢版 |
2017/08/05(土) 08:36:07.74ID:h+4+UPF9
>>40
正直それ意味わからん。
客のものだろうがバックアップ取ったら片方は好きにいじればいいだろ。
コピー元が客のものだったとしても、複製したものは自分のものだろ。
個人情報云々も関係ないよ、マシン預けるってことは預けたマシンの中身を
全部知られてもいいってことだから。
0042デフォルトの名無しさん
垢版 |
2017/08/05(土) 09:04:53.62ID:P20UcjsV
>>41
そりゃ自社に複製した後なら作るのも捨てるのも自由だろうけど世の中そんな簡単じゃないよ
レガシとの絡みのせいで複製できない(複製するのに多大な工数がかかる)システムは少なくない
技術的には可能でも客のポリシの都合でできないこともある
客か別の企業がインフラの面倒を見てくれるならいいけど
権限を幾らか譲渡するのでうちに来て環境構築してくださいという案件も結構ある
こういう案件では同じ端末にすでに別のアプリが稼働している事が多い
そうなるとリスクが高すぎるからゼロから組み上げましょうなんて提案はできない
0043デフォルトの名無しさん
垢版 |
2017/08/07(月) 19:54:24.01ID:Lakck2FI
>>42
いやそれでもおかしい、
結局のところ仕事として請け負っている以上何かを変えなければ
何も達成しないわけで、部分的にディレクトリ構造だけでも切り出して
複製するなりして結局何か変えたり追加したりしなければ仕事に
ならないんだよ。
できない、費用対効果がなさすぎる、リスクが高すぎる或いは見積もり不可ならば
請け負うべきじゃない。
あなたに請け負う決定権がないなら決定した人間の責任。
それで失敗してとやかく言われたりするならば会社を辞めればいい。
上の方でも議論されてたけど。
企業体やビジネスだってImmutabuleでいいじゃんって思うんだよね今の時代。
無責任なこと言ってるみたいだけど最終的にそっちの方が正解なんじゃないかなぁ。
0044デフォルトの名無しさん
垢版 |
2017/08/09(水) 02:24:25.40ID:qd4uHZWe
・Dockerとシェルスクリプトの違いって
・「コンテナ」「イメージ」「スナップショット」という概念が導入された。
・DockerのためのコマンドAPIが充実しいている。
 くらいなものか?

・AWSと比較したら、AWSよりも使い捨て性がよく、「スクリプト」を作る
 仕組みが整っている。ってな感じかねぇ。
0046デフォルトの名無しさん
垢版 |
2017/08/09(水) 17:22:33.92ID:+xT3EFIJ
>>31,33

30だけど返事遅れてごめん
chmod 777 dir はread-onlyとか言われて
rwxr-xr-xだっけ?も変わらない
親dirも同じ

ググるとmountナントカをVagrantfileに書けってあって
やってみたけどループとか入れてるので
そのままじゃだめだった
最初からやり直そうかなと思いつつ報知
0048デフォルトの名無しさん
垢版 |
2017/08/12(土) 13:18:10.59ID:2oFLTBe8
DockerってGUIツールとかないの?
GUIは設定した名前や値を覚えてなくていいから便利なんだよなあ
あとスクリプトのテンプレートを生成してくれる支援系ツールとか、
コマンド生成ツールとか充実してるとありがたい。
0049デフォルトの名無しさん
垢版 |
2017/08/12(土) 14:19:15.99ID:2Yw2XYfL
372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ

それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト

473非決定性名無しさん2017/08/03(木) 15:21:30.71

JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の
間でやらしている。

446非決定性名無しさん2017/08/02(水) 22:12:48.95

JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした

自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
0050デフォルトの名無しさん
垢版 |
2017/08/13(日) 17:53:13.25ID:fRo9GRp1
誰かこのスレでDocker使ってBitCoin掘ってる♂人いる?
0051デフォルトの名無しさん
垢版 |
2017/08/15(火) 12:57:53.44ID:HP4MqYNb
Moneroなら掘ってるけど・・・・プログラム板と関係なさすぎじゃねえの?
0052デフォルトの名無しさん
垢版 |
2017/08/17(木) 19:08:53.78ID:Hre7EUXe
インフラの設定ってどう練習すりゃいいのかなって思う。
コンフィグの設定はプログラミングと違って新たな発見とかがないから
苦痛だな。
0053スレチかもだけど
垢版 |
2017/08/17(木) 20:32:05.78ID:yl5Pdr7V
>>52
俺はVM上でテストしてるよ

失敗したり挙動が怪しくなってもスナップショット機能ですぐ元に戻せるから
色んなことを気楽に試せるようになると思う

まあインフラって「動いて当然」だから、必然的に枯れた技術と豊富なノウハウの世界になるのはしゃーない
ただ、“落とさない技術”とか“落ちたときになんとかする技術”とかは、知ってると良いこといっぱいあるよん
0055デフォルトの名無しさん
垢版 |
2017/08/21(月) 19:07:05.90ID:lYWr+wd6
データベースコンテナの扱い方がよくわからん
テーブルの作成とデータ投入とマイグレーションってどうすればいいんだ
0056デフォルトの名無しさん
垢版 |
2017/08/25(金) 22:22:31.90ID:/f+10ORp
ユーザー単位のプライベート開発環境構築は圧倒的にdockerが楽だな
でもdockerはよくわからんからダメってお客が多くて運用ではイマイチ使えない
0057デフォルトの名無しさん
垢版 |
2017/08/25(金) 22:35:38.04ID:x7mIO/g5
開発環境と言うからにはGUIのテキストエディタとか
入ってなきゃいけないはずなんだが、それは本当にDockerか?
0058デフォルトの名無しさん
垢版 |
2017/08/25(金) 23:02:42.07ID:/f+10ORp
あーうちはそこまで仮想化原理主義的じゃないんだ
エディタとランタイムはローカルの使ってる
ローカルJDK+gradle+好きなエディタ
ローカル.NET+cake+好きなエディタ
サーバーはcomposeでお手軽に構築
ユニットテストはビルドから全部フレッシュなコンテナでやってるよ
0059デフォルトの名無しさん
垢版 |
2017/08/25(金) 23:22:19.30ID:x7mIO/g5
> あーうちはそこまで仮想化原理主義的じゃないんだ
仮想化原理主義とかいうとVagrantも仮想化なんで
それをいうのならアプリケーションコンテナ原理主義でしょ?

> エディタとランタイムはローカルの使ってる

> ユニットテストはビルドから全部フレッシュなコンテナでやってるよ

言葉の定義の問題だけど、それを俺は開発環境とは呼ばないんだよな
だってその環境で開発してるわけじゃないから。
ユニットテストの実行環境

そしてもう一つ。CIとしてコンテナでユニットテストを
動かすってのはありなんだけど、(俺の定義での)開発環境として
ユニットテストを動かすのは大変じゃないか?

俺の定義での開発環境のユニットテストっていうのは
例えばクラスを一ついじった時に、それを保存したタイミングなどで
そのクラスだけのテストを実行したりすること
言い換えるとテキストエディタやIDEからユニットテストを実行するってこと

不可能じゃないと思うけど、そこらへんを整えてくれてるものはないと思うんで
労力を考えるとDockerを使うのは全体のテストを実行するだけでよいCIのユニットテストに限定される

よってユニットテストであっても開発環境としてDockerを使うのは大変であるというのが結論
開発環境だとデバッグのための機能を有効にしたりするしさ。
単に開発で使うサーバーの実行環境として使うのは楽だけどね。
0061デフォルトの名無しさん
垢版 |
2017/08/26(土) 12:52:59.65ID:6eLxh+kC
ほぼどんな環境でも動く
デフォルト設定が吟味されてて多くの場合でオプション不要
手軽に細かくカスタマイズもできる
オフィシャルでセキュリティ的に安全
頻繁にメンテナンスされる

そんなRolesが大量に手軽に手に入るなら個人的にはDockerは要らないかな
0062デフォルトの名無しさん
垢版 |
2017/08/27(日) 05:51:27.92ID:rl9QFWEb
>>60
将来を考えたら根幹に関わる部分で複雑な事はやって欲しくないと思うわな
dockerに限ったことじゃないが、遅かれ早かれ陳腐化する訳だし
枯れた手法と比べて明確なメリットがなきゃ導入しない方が良い
0063デフォルトの名無しさん
垢版 |
2017/08/27(日) 08:55:46.09ID:2Uadi5zm
そんなのビジネスの内容次第だろ
手早くスタートアップして頻繁にビジネスに変化があると見込まれるなら安定感はそれほど優先度の高い項目じゃない
何でもかんでも枯れてる安定したものがいいってところで思考停止してる人が多すぎる
0064デフォルトの名無しさん
垢版 |
2017/08/27(日) 15:03:25.96ID:sNhXAArf
>>62
> 将来を考えたら根幹に関わる部分で複雑な事はやって欲しくないと思うわな

じゃあ、そこで前提として
今より複雑か、簡単かという話が必要になる。

根幹に関わる部分は複雑になっている。
これがDocker使うと複雑なものが簡単になる。

これを否定するならば、なぜDockerを使うと
複雑になるのかを説明しなければいけない。

その時に「俺はDocker知らん。勉強しなければ
いけないから複雑なんだ」では答えになっていない。

もちろんDocker使うと複雑なものが簡単になるというのは説明可能
0065デフォルトの名無しさん
垢版 |
2017/08/27(日) 16:45:51.14ID:QpZ6CaB1
ansibleってなんかめんどくさいな
ベキトウセイとかシェルスクリプトで十分じゃん
apt-get install -y hoge
これだけでもベキトウだよ
なんでわざわざあんなわかりにくい大げさなyml書かなきゃいけないのさ?
0066デフォルトの名無しさん
垢版 |
2017/08/27(日) 17:01:52.72ID:rl9QFWEb
誰しもがメンテしやすいシェルスクリプトを書ける訳じゃないからね
逆に言えば書けるならそれでいいという話になるが
0067デフォルトの名無しさん
垢版 |
2017/08/27(日) 17:09:12.09ID:QpZ6CaB1
>>66
プレイブックは誰にでもメンテナンスしやすいものだっていうansible側の広告が刷り込まれて先入観があるんじゃないかな?
実際あんなのメンテナンスするのわかりにくいし大変だよ
例えば鍵とかリポジトリ登録するところとかシェルで書くときはこうだなってのわかってないと絶対プレイブックも書けない
シェルがわからない非エンジニアでもプレイブックならわかるって本気でみんな考えてるのかな
その感覚よくわからんわ
0068デフォルトの名無しさん
垢版 |
2017/08/27(日) 17:10:33.18ID:rl9QFWEb
>>63
自由に導入したらいいよ
明確なメリットがあれば俺も使うし

>>64
複雑というのは習得に掛かった時間と思って貰えたらいい
dockerで用意された環境を立ち上げる事は簡単だが
その用意された環境を構築する作業も簡単とは俺は決して言えない
0070デフォルトの名無しさん
垢版 |
2017/08/27(日) 20:07:24.33ID:IIGC9wQX
>>68
> 複雑というのは習得に掛かった時間と思って貰えたらいい
何を言ってるんだ?

例えば、未経験者にとっては習得に時間がかかると思うが
習得に時間がかかる=複雑だというのなら、

お前は

未経験者「俺の知らないことだかけ。複雑ですね。導入する価値なし」

って言われて納得するのか?
0072デフォルトの名無しさん
垢版 |
2017/08/27(日) 20:55:27.14ID:AumSAEcK
>>64
まあ大前提として、一番重要なデータ部分と設定のドキュメント化が
しっかりして残されてる事が最低限だよな。
リポジトリから拾ってきたな様なのにはその辺がブラックボックスなのが
少なくないがw

逆に言えば、それさえ明確にきちんと残されているなら、仮にdockerが
陳腐化して消え去っても移行は全然難しくない。
0073デフォルトの名無しさん
垢版 |
2017/08/27(日) 21:02:37.75ID:IIGC9wQX
Dockerの素晴らしい点はイメージを作るものは
手順書などというメンテナンスされない傾向にある
ドキュメントではなく、Dockerfileという簡単な
設定ファイルで書くことができるってこと
だからブラックボックスにはならない

でここから二種類の人間に別れる。Dockerfileは
すごく簡単なファイルなんだが、

未経験者の新人ややる気のないSEのような
Dockerfileが読めない人間は、勉強したくないと駄々をこねる
なまじ年を取ったやつが偉そうに複雑だから使えないとか
破綻したことを言い出すわけだ
0074デフォルトの名無しさん
垢版 |
2017/08/27(日) 21:39:03.20ID:rl9QFWEb
>>69,70
一応言っておくけどdocker不要論者じゃないからね
メリットがあるなら使えばいいと言ってる
要求が上がるにつれて自然と選択肢に上がるんだし
0075デフォルトの名無しさん
垢版 |
2017/09/01(金) 20:50:15.08ID:ocN7XlE1
windows系がわからん
ssh => winrm
apt/yum => chocolatey
docker => windows server container
ansible => powershell DSC
vagrant => vagrant

これでいいのか?
guiインストーラーしかないマイナーなアプリのインストールとかどうやって自動化するんだ…
誰も使ってなくて相談できねぇ
0076デフォルトの名無しさん
垢版 |
2017/09/01(金) 22:51:41.61ID:jfA5F5eY
ふつうのWindowsInstallerベースならGUI使わずにインストールできるけどね。
わざわざ独自にGUIインストーラー実装してるような変わり者ならしょうがないが。
0077デフォルトの名無しさん
垢版 |
2017/09/03(日) 04:17:07.76ID:V/LSJTV5
DockerとかVagrantとかのツールってさ、
例えばLinuxコマンド一切叩け無い人や、
素でサーバ構築した経験がない人がいたとして、
DockerfileやVagrantfileの書き方や、
dockerコマンド、vagrantコマンドだけ覚えた場合でも構築
出来るようになるの?
0080デフォルトの名無しさん
垢版 |
2017/09/03(日) 08:05:37.08ID:V/LSJTV5
VagrantfileのRubyの記述苦手、
特にシンボルと配列のキーを指定する記法とがごっちゃになるし、
設定項目と値の間に = 要るのか要らんのかの基準がよくわからない
0082デフォルトの名無しさん
垢版 |
2017/09/03(日) 12:48:09.75ID:e9mk7X/B
Ruby では、= は代入。
変数 = 値

= が無いのは、メソッド名と引数。
puts :abc
#=> abc

メソッド名(引数)の、( ) を省略できる。
常に省略できるかどうかは、知らないけど
0083デフォルトの名無しさん
垢版 |
2017/09/03(日) 21:34:14.77ID:QlhluFUq
色々試したけどVagrant+シェルスクリプトがベストだな
AnsibleとDockerはやりたいことに対して実現方法が大げさすぎる
0085デフォルトの名無しさん
垢版 |
2017/09/03(日) 23:06:38.28ID:DIhXI1rF
それはそれとして、MacではVagrantを使うまでもなく
実OS上でアプリ開発すればいいし、
Windows もWSLでUbuntuが使えるようになったし、
今の時代でもVagrantを使う必要があるのか悩む
0086デフォルトの名無しさん
垢版 |
2017/09/03(日) 23:11:54.10ID:QlhluFUq
環境汚さないためにはVagrantいいんじゃないか
でもMacに慣れた後Linuxやるとめんどくさい
brewだと特に苦労せずサクサク新しいバージョンのパッケージが入る
Linuxはいちいちリポジトリや鍵登録せんとあかん
メンドくさくて環境汚れてもMacでいいやという気持ちになる
0087デフォルトの名無しさん
垢版 |
2017/09/03(日) 23:29:48.19ID:DIhXI1rF
>>86
だからそこでDockerを使うんだよ。
Docker使えば環境を汚さずに(消したいときはコマンド一つ叩くだけ)
好きなバージョンを入れられる。
0089デフォルトの名無しさん
垢版 |
2017/09/04(月) 16:38:39.40ID:dTsftoJX
それはもうしょうがない
むしろ docker rmi でいつでも気兼ねなくサクサク消せるのがメリットなんだと割り切っちゃえ
0091デフォルトの名無しさん
垢版 |
2017/09/04(月) 20:29:54.61ID:KUepcu9z
>>90
え? いらなくね?
普通に最新のDocker for Windowsインストールして
docker ps できたよ。
docker machine使わないといけない技術的な理由思いつかないし


ほら、なにもいない

docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS

docker-machine config
Error: No machine name(s) specified and no "default" machine exists
0094デフォルトの名無しさん
垢版 |
2017/09/06(水) 06:40:13.96ID:uVSfh59G
DockerってYAMAHA, ciscoのルータとかファイアウォールへのコンフィグ流し込みに
も使えるの?
正直Linuxマシンは手動ゴリ押しでもDockerでも構築できるっちゃできる。
だけどこれらのOSとかAndroidとかLinux以外が簡単に構築できたらめっちゃ
便利やん。
Winはその・・・お察しだな。
0095デフォルトの名無しさん
垢版 |
2017/09/06(水) 06:44:51.20ID:uVSfh59G
>>94
補足:
cisco, YAMAHAとかのOS独自のコマンド操作とかGUI操作のものを、
RubyとかYMLとかDockerfileの文法に変換して統一出来たらいいなってこと。
0097デフォルトの名無しさん
垢版 |
2017/09/11(月) 21:00:50.06ID:zcvLuad8
あるサーバを構築したときのコマンド入力作業を
historyからシェルスクリプトにしておけば、
DockerやChefと同じことできるんじゃないの?
全く同じサーバが1枚のフャ@イルで構築でbォるじゃん。
0098デフォルトの名無しさん
垢版 |
2017/09/11(月) 23:44:54.91ID:QNy5oHUR
Dockerの方がパフォーマンスが良いし
レジストリも充実してるよ
あとDockerって慣れてくるとDockerfileは自分では殆ど書かなくなってrunとかcomposeがメインになってくるんだわ
だからシェルスクリプトとじゃ比較にすらならない
0100デフォルトの名無しさん
垢版 |
2017/09/24(日) 21:52:22.92ID:VAo7cLSP
VirtualBoxがDocker意識してUI作り込んだら
便利かもしれん。
ホスト側の管理はUIあったほうがやりやすいからな。
0101デフォルトの名無しさん
垢版 |
2017/09/28(木) 19:35:59.80ID:NUvabez2
GUIが欲しいならKitematicがあるやん
でもコマンドラインに慣れておいた方が自動化の環境構築をパパっと作れて良いぞ
0102デフォルトの名無しさん
垢版 |
2017/10/11(水) 12:06:18.93ID:PBPiuL2i
Dockerってcronとかバッチみたいなジョブスケジューラ
機能もあるの?
0107デフォルトの名無しさん
垢版 |
2017/10/14(土) 17:58:36.49ID:GDzf5CCz
>>105
マジデ!?
GUIコンテナ絶対便利なのにやってる人見た事ないなぁ
EclipseコンテナとかVisualStudioコンテナとかあれば絶対流行る
必要なもの全部入りで隔離されたクリーンな環境とか最高やろ
しかもコマンド一発でインストールできちゃう
0109デフォルトの名無しさん
垢版 |
2017/10/14(土) 22:08:55.30ID:YZBwJ7NO
上司に「Docker使いましょうよ」って提案してみたら、
「Xamppで十分でしょ」って返された。
何か言い返したかったがこれと言って強力な
Xamppに対するアドバンテージが思いつかなかった。
0111デフォルトの名無しさん
垢版 |
2017/10/15(日) 09:53:35.93ID:/8UsyUgn
DockerはXamppじゃない。用途が完全に違う。

というかDockerを使ってXampp相当のものを
作ろうとすると相当大変だぞ

Docker使ってPHP製のアプリを実行する所までならまだわかるが
Xampp=通常は開発用にするには、更に色んな機能が必要になる。
0113デフォルトの名無しさん
垢版 |
2017/10/15(日) 10:31:02.51ID:jiVarmiT
使い捨てしない場面でDocker使う意味あんの?
ビルドとかユニットテストに使うぶんにはDocker軽いし便利だけどね
ビルドサーバー汚さんですむのは嬉しい
でもサービス運用には向いてないでしょ
Dockerでイミュータブルインフラ実現だ〜ってエキサイトした時期もあったけど
それはクラウドの仮想化サービス使えって結論でちゃったし
0115デフォルトの名無しさん
垢版 |
2017/10/15(日) 10:50:45.14ID:/8UsyUgn
>>113のようにDockerを分かってない人の典型例は、
Dockerがアプリデプロイ用のためのものだって
分かってないってことなんだよね。

クラウドの仮想化サービス使え?
その仮想化サービスにお前が作ったアプリを
配布するのはどうするんだよって話
0116デフォルトの名無しさん
垢版 |
2017/10/15(日) 10:57:19.24ID:/8UsyUgn
次の反論も想定できるから先に行っておくと、

アプリデプロイするなら、デプロイツールを使えばいいだろ?だって?

お前のアプリはどのOSでも同じ手順でデプロイできるのか?
ミドルウェアは何も使わないのか?ライブラリは何もいらないのか?
手元の開発環境(WindowsやMacOS)で動かしていたものが
クラウドの仮想化サービス=Linuxで動くのか?

Docker使えば手元で動かしたLinux用のDockerイメージを
そのままクラウドの仮想化サービスで動かせるんだよ。
0117デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:08:18.67ID:/8UsyUgn
もしこのあと反論があるとしたら、

うちはJavaを使ってる。一度プログラムを書けば、どこでも実行できる
Write once, run anywhereだよ

かな?


http://www.wdic.org/w/TECH/Write%20once%2C%20run%20anywhere
> 実際には、バイナリレベルでは仮想計算機の実装のバグ、ソースレベルではAPIの
> 実装バグやそもそも対応するAPI仕様の違いなどにより、どこでも確実に動くと断言できることはあまりない。
> このため、"Write once, test(debug) everywhere"(一度書いて全個所で試験(デバッグ)する)と揶揄されることもある。
0118デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:14:03.69ID:jiVarmiT
配布ごときなんでもいいよ
むしろたかがアプリケーションのデプロイにDockerを使うのは過剰すぎる

そもそもどんなOSにも配布する必要がない
他人に使ってもらうためのアプリケーションしか考えられないバカか?

ミドルウェアやライブラリは仮想マシンイメージに入れときゃいい
なんならイメージはまっさらにしてansibleで構成してもいいだろう

手元で動かしていたものがクラウドで動くんだよ
お前はテストしたことないのか?
0119デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:15:12.03ID:jiVarmiT
JVMのバグは気にするのにDockerのバグは見て見ぬ振りかよ
お前の環境のDockerとクラウドのDockerが同じ保証はどこにあるんだ?
0120デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:22:49.81ID:jiVarmiT
銀の弾丸を手に入れたつもりになってるバカってほんと迷惑だよ
うちにもDocker Dockerうるさい奴がいるけど
そいつはDocker使いたいだけでDockerの事も社の保有するインフラの事情や社内政治のことをなんもわかってない
0121デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:24:20.20ID:jiVarmiT
手元で動いてこりゃ便利とか思ってるだけで
実際に大規模なサービスで運用したこともない雑魚なんだろうな
ぶっちゃけ透けて見えるよ
0122デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:27:36.15ID:/8UsyUgn
JavaのWrite once, run anywhereが失敗したのは、
違うOSなのに、Javaの力だけで同一の実行環境を
作り出そうとしたところなんだよな。

Dockerのアプローチは別で、Linuxという環境のみで
Write once, run anywhereを実現したということ。
Linuxでしか動かないじゃんと思うかもしれないが、
WindowsとMacではすでにある仮想マシン技術を利用することで実現
もっともWindowsとMacは本番用途としては考慮されてないと思うが。

本当に同一環境か?という点で見ると、Linuxのカーネルの違いというものはある
だけどLinuxは元からカーネルが違ってもユーザーランド(カーネル以外)には
100%に近い互換性を持たせる方針なのでそれが問題なることはない。

だからローカルで開発で使用していたDockerイメージをそのまま
クラウドの仮想化サービス上に持っていくことができる。
その作業も単にdocker runするだけ
0123デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:29:17.48ID:/8UsyUgn
>>118
> そもそもどんなOSにも配布する必要がない
> 他人に使ってもらうためのアプリケーションしか考えられないバカか?

え? 自分一人で使うアプリケーションしか考慮してないの?

普通は他人に使ってもらうアプリを作りし、開発する人も複数人、デプロイする人も自分以外にいる。
プロジェクト外れて他の誰かに完全に引き渡すことも有るし。
0125デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:33:31.89ID:/8UsyUgn
>>121
> 実際に大規模なサービスで運用したこともない雑魚なんだろうな

実際に大規模なサービスで運用するならまずDockerだよw

いろんなクラスタ管理ツールが生まれてきたけど、
今はkubernetesに集約されつつ有るな。
これはDockerイメージを使うことが前提となってる。

知らない人もいそうなので適当に引用すると

https://qiita.com/MahoTakara/items/85096f8b2632c802ab22
> Kubernetes(クーべネティス)を一言で言うと、自動デプロイ、
> スケーリング、アプリ・コンテナの運用自動化のために設計された
> オープンソースのプラットフォームです。
> Kubernetesによって、要求に迅速かつ効率良く対応ができます。

あんた実際に大規模なサービス運用したこと有るんでしょ?
何使ってる?
0126デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:34:05.67ID:jiVarmiT
>>123
そこで自分一人で使うって解釈になるのがアスペくさいな
サービス利用者は幾らでもいる
開発運用する側がプロジェクトメンバーと連携するのは当たり前だろ
むしろお前はプロジェクト内でOSも定めずに作業してんのかよ
どんだけ適当な職場なんだ
0129デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:36:53.92ID:/8UsyUgn
>>124
テストはするだろ?

ローカルのDockerイメージでテストすれば
それがサーバーでも動くことが保証される。

もちろんアプリの話ね。ローカルの開発と実際のサーバーでは
インフラの構成は違うので、その部分はテストが必要。
アプリの部分のテストがローカルでできるって話。

ちなみにローカルであっても実際のクラウドと互換性がある環境を
用意することでテストすることもできる。
その場合はminikubeを使うと良いよ。Kubernetesの公式ツールで
Kubernetesと同等の環境をローカルに作り出すことができる。
もちろんDockerイメージが有ることが前提

大規模開発ってDockerがないと大変だよねw
0130デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:41:46.66ID:/8UsyUgn
>>127
ansibleでどうやってクラスタ組んで自動デプロイやスケーリングやってんの?

ansibleは特定のOSというか異なるディストリどころかディストリのバージョンが
上がった時でさえ使いまわしできないもので、環境ごとに用意するもの。
そして最低限の環境を作るものだよ。
OSとDockerのインストールと簡単なネットワーク設定程度にとどめておいたほうが良い

いちいちansibleでアプリから使用するライブラリのバージョンが
アップデートされたから入れ直しますとかやらないほうがいい。
そんなことやるとトラブルのタネにしかならんよ。

ansible(等)の冪等性は書いて有ることはその通りに設定されるけど
書いてないものに関しては、我関せずだからね。
環境ごとに用意しなければいけないansibleにたくさんのことを書くはめになる。
そしてそれはローカルの開発環境には使用できない
0131デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:45:54.18ID:/8UsyUgn
>>126
> むしろお前はプロジェクト内でOSも定めずに作業してんのかよ
> どんだけ適当な職場なんだ

実行OSと開発OSが別ってだけですが?

いえ、サーバーと全く同じOS、例えば超軽いが実行専用にカスタマイズされていて
テキストエディタすら入っていない、CoreOSやContainer-Optimized OSを
普段の開発用OSとして使ってるっていうのならいいんですよ?

なぜ開発しやすい環境で開発して、それをそのままサーバー上で動かさないのでしょうか?w
まあそれができるのがDockerというわけ。
0132デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:49:59.73ID:Ad4/97ip
本番でDockerもAnsibleもautoscalingも全部使うよ
使い方がわからないものは使わないほうがいいよ
便利の定義はスキルセットによるし
0133デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:51:53.70ID:/8UsyUgn
autoscalingってAWSの機能か?
kubernetesはGoogleが作ったものだけど
GCP上ではなくAWSでも動く
俺はGCP上でしか使ったこと無いけどね。
0134デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:55:03.35ID:/8UsyUgn
> 121 名前:デフォルトの名無しさん[sage] 投稿日:2017/10/15(日) 11:24:20.20 ID:jiVarmiT [6/10]
> 手元で動いてこりゃ便利とか思ってるだけで
> 実際に大規模なサービスで運用したこともない雑魚なんだろうな
> ぶっちゃけ透けて見えるよ


さて、こいつが大規模サービス運用したことが有るような
発言してくれるのはまだだろうか?w
低いスキルセットしか持ってないのが透けて見えるよ。
0135デフォルトの名無しさん
垢版 |
2017/10/15(日) 11:59:36.35ID:/8UsyUgn
上の方でDockerの技術がわからないから政治問題にすり替えようとしている人がいたけど、
コンテナ自体はLinuxカーネルの機能で、Dockerはそれをラップしているツール。
代替技術は他にも有る。

例えばrkt。検証はしてないがKubernetesでも対応している。

そしてこういうものも有る。
http://www.publickey1.jp/blog/16/kubernetescri-odocker.html
> Kubernetes、独自のコンテナランタイム「cri-o」開発中。
> コンテナランタイムのインターフェイスを標準化し、
> Dockerだけでなくどんなコンテナランタイムでも対応可能に
0136デフォルトの名無しさん
垢版 |
2017/10/15(日) 12:00:21.34ID:Ad4/97ip
Dockerは仮想化とコンテナ、AnsibleはDeploy
コンテナはDeployの一手段だから混同してしまうのは仕方ない
ID:/8UsyUgnも煽るような言い方してよくない
0137デフォルトの名無しさん
垢版 |
2017/10/15(日) 12:01:19.25ID:/8UsyUgn
> ID:/8UsyUgnも煽るような言い方してよくない
良いだろw それが5ちゃんねるだ。
0138デフォルトの名無しさん
垢版 |
2017/10/15(日) 12:11:27.93ID:/8UsyUgn
Ansibleは構成管理ツールだよ。マシンの構成を管理するだけ
アプリのデプロイは行わない。

もちろん頑張ればデプロイもできるけど、構成管理ツールで現実的なデプロイは
すでに完成されたアプリを動かす程度
いま自分らが開発している真っ最中のアプリは内容が多くなりがちで変更も頻繁に発生するので
Ansibleでやるのは大変。playbookが正しく動くかのテストが必要になる。
作成したplaybookはなるべく変更しないような、そういう使い方にとどめておいたほうが良い

んで、Dockerももちろんデプロイツールではない。デプロイを容易にするために
開発しているアプリとその周辺(ミドルウェアやライブラリ)をひとまとめにするもの。

デプロイする時に細かいコンポーネントに別れていたら、
それらを一つ一つデプロイするものとして書いていかなければいけないけど、
それらがひとまとめになっていれば一つだけデプロイすればすむ
それがDockerイメージ

デプロイするべきものが一つになるので、デプロイはツールを使うまでもないんじゃね?
って言いたくなるほど、シンプルになる。

そこまで来るとAnsibleを使って、Dockerイメージをデプロイするのもありだよw
そう。AnsibleとDockerは組み合わせて使うものなんだ。

まあGCPなどのクラウド使っていれば、その基本機能としてDockerイメージを
使う方法があるから、Ansibleを使わなくて良いんだけどね。
0139デフォルトの名無しさん
垢版 |
2017/10/15(日) 12:51:15.75ID:SUmdrC/e
俺もansibleはゴミって昔から主張してるけど、なぜかありがたがって使う人がいる
互換性酷い、yaml生産性悪い、かゆいとこ手が届かんで最悪
docker & ssh & shell scriptが最強
この組み合わせなら、誰でも使えるし、可能性も無限大
KISSの原則ってやつだな
dockerはどうなるかわからんがssh & shell scriptは長く安心して利用できる点も高評価
0140デフォルトの名無しさん
垢版 |
2017/10/15(日) 13:48:47.99ID:/8UsyUgn
>>139
> 互換性酷い、yaml生産性悪い、かゆいとこ手が届かんで最悪
それな。

使うために "中間層" が必要なるという仕組みが悪い
アプリのインストールや設定とか普段シェルスクリプトでやってるはず

だけどAnsibleとかそのアプリをインストールするためのプラグイン(中間層)が必要になる。
それをアプリが公式に用意しているならまだマシだけどそれは少数派
Ansibleがどれだけ成長したとしても、アプリに完全対応はできない。
バージョンが変わるたびにこの組み合わせで正しく動くだろうか?って考えなきゃいけない。

そしてプラグインを使うための知識が必要になる。
普段シェルスクリプトでやってるのと同じことをやるだけなのに
別の知識と道具が必要になる。

あとYAMLは本当に設計ミスだと思う。
構成っていうのは一連の流れで作るものなので
スクリプトの方が適切。
0141デフォルトの名無しさん
垢版 |
2017/10/15(日) 14:23:35.60ID:Ad4/97ip
ansibleはmodule使ってる限り冪等なのがいいんだろ

そして、yamlもそこまで悪くない
docker-composeでも使うし、生産性低いならきちんと訓練すべきだと思う
0142デフォルトの名無しさん
垢版 |
2017/10/15(日) 14:40:41.95ID:/8UsyUgn
> ansibleはmodule使ってる限り冪等なのがいいんだろ

「使ってる限り」と言ってる時点で駄目なんだよ。
なぜmoduleを使う? 自分で作ればよかろう?
もちろん作るのが大変だから使うのだろうがそれで起きてるのが互換性問題。

アプリ開発社からすればAnsibleや誰かが作ってる
非公式の質の低いモジュールを使わざるを得ない
ここでいう質の低いっていうのは、アプリのあるバージョンに
完全に対応していなかったり一部の機能が抜けていたりする。
そしてそれを自分で直さないといけなくなる

Dockerの場合はモジュールなどというものはなく自分でDockerfileを作るのが基本
もちろんある程度用意されているがほんの数行のファイルなので自分でメンテナンスできる。

> そして、yamlもそこまで悪くない
YAMLが悪いと言っているのではない。設定として使うのは問題ない。
構成管理のように順番があってその通りに実行していかなければいけないものを
YAMLという順番が関係ないようにみえる形式を使うのがダメだという話
やってることがスクリプト実行ならスクリプトで書けば良いんだよ。
設定とスクリプトは違うもの。
0143デフォルトの名無しさん
垢版 |
2017/10/15(日) 16:06:17.00ID:aaEJwvll
まぁ、そんなこと言い始めたらshなんて可読性も低いしpythonのほうがいいとかになるんだよね
少なくとも個人が書いたスクリプトより、ansibleのmoduleのほうが信頼性は高いよ
DockerだってFrom句使うほうが普通だろ
なんで、どっちかはダメと攻撃せずにいられないのか
酸っぱい葡萄が大好きなんだな
0144デフォルトの名無しさん
垢版 |
2017/10/15(日) 16:14:25.83ID:/8UsyUgn
> まぁ、そんなこと言い始めたらshなんて可読性も低いしpythonのほうがいいとかになるんだよね
> 少なくとも個人が書いたスクリプトより、ansibleのmoduleのほうが信頼性は高いよ

意味が分からん。ごく普通にシェル使ってインストールとかしてるだろ?
もしかして黒い画面恐怖症かなにかか?

スクリプトは単純に何かのインストールコマンドと
ファイルの変更ぐらいしかしないよ。
なんでいつもやってる作業を置き換えないといかんのさ
0145デフォルトの名無しさん
垢版 |
2017/10/15(日) 16:15:43.59ID:/8UsyUgn
> DockerだってFrom句使うほうが普通だろ
From区にはdebianとかrubyとかしか使わんなぁ。
公式で用意されていればそれ使うけど、
用意されてないならされてないで
自分でDockerfile書くだけだし。
0147デフォルトの名無しさん
垢版 |
2017/10/15(日) 16:27:35.49ID:SUmdrC/e
誰が書いたかも知らないようなmoduleは危険だぞ
人類はnpm left-padで痛い目にあったばかりじゃないか
0148デフォルトの名無しさん
垢版 |
2017/10/15(日) 16:29:20.49ID:/8UsyUgn
それな、DockerとAnsibleの違い

Ansibleは自分でやるべきことを誰かにやらせて楽をする。
Dockerは自分でやるべきことを自分でやるがその作業が楽になる。

誰かにやらせて楽をする方がいいかもしれんが、
それはその誰かが信用できる場合だけなんやで。
0149デフォルトの名無しさん
垢版 |
2017/10/15(日) 17:31:51.97ID:aaEJwvll
>>145
あ、そうなんだ。そういう人にとってはansibleのモジュールは使いにくいかもね。
一般的にはnginxとかフレームワークくらいは使うと思うけど。
てか、yml書くのだってvimが普通なのに、なんでsh書かないとterminal恐怖症なんだよ
意味わからん
0150デフォルトの名無しさん
垢版 |
2017/10/15(日) 17:44:48.24ID:aaEJwvll
てか、ansibleもDockerも同じ
なくてもどうにかなるんだけど、使える人は使う
使えない人は使わないし、使いたいとも思わない
そんだけ
0151デフォルトの名無しさん
垢版 |
2017/10/15(日) 18:06:11.48ID:HL16aayQ
ansibleは生産性下げてるよ
fabricとかでいいじゃないか
ああいうのでいいんだよ、ああいうので
0152デフォルトの名無しさん
垢版 |
2017/10/15(日) 18:19:59.49ID:/8UsyUgn
>>149
Ansibleのモジュールはシェルスクリプトでできることの
全てを網羅してないっていうのが一番の問題なんだよ。

nginxがバージョンアップした時、新しく追加された設定項目に
モジュールはすぐに対応してくれない。

シェルを使っていればすぐできることが
Ansibleだと対応する機能をいちいち調べて
シェルとは違う方法で記述しないといけない。

その中間の変換作業が無駄

それに当然の話だけど、Ansibleは自社で開発しているアプリ用の
モジュールが存在しない。作らないといけない。
おかしいと思わないのかね? シェルですでにやってる作業と同じことを
調べ直す作業を何故やっているのかと

あー、もちろんAnsibleでシェルスクリプトを実行できるのは知ってるよ。
そんなのを使うならシェルスクリプトでいいじゃんって話だからね。
0153デフォルトの名無しさん
垢版 |
2017/10/15(日) 19:00:33.44ID:aaEJwvll
それでいいんじゃね?
別に使わないとできないことはないよ
でもそれはshellだろうがDockerだろうがAnsibleだろうが同じ

そもそもAnsibleは環境構築以外だと、デプロイの導火線の発火に使うことが多いだろうから自社アプリ用のモジュールがなぜ必要なのかわからんけど
あなたにとってシェルがベストな選択肢なら、シェルがいいんじゃね?
0154デフォルトの名無しさん
垢版 |
2017/10/15(日) 19:05:19.96ID:aaEJwvll
>>151
そこらへんは議論の余地があるかもね
他にもPuppetもあるしChefもある

全部sshとshで実現できるってんなこといったら、その他スクリプト言語もラッパツールも全否定だからな…
彼は一体何と戦ってるのか…
0155デフォルトの名無しさん
垢版 |
2017/10/15(日) 19:35:47.65ID:vM8WLXd+
たかが数行、長くても数十行の単純なスクリプトでOK
冪等性などという高尚な概念を導入しなくても問題なく運用できる
これでわざわざ構成管理ツールを導入しようって方がどうかしてる
0156デフォルトの名無しさん
垢版 |
2017/10/15(日) 19:37:08.37ID:/8UsyUgn
>>153
> そもそもAnsibleは環境構築以外だと、デプロイの導火線の発火に使うことが多いだろうから

だろ? Ansibleでデプロイはしないし、だからデプロイそのものが簡単になるわけじゃない。
デプロイをするのはデプロイツールだが、Dockerを使えばデプロイツールが不要になる。
なぜなら単に1アプリを動かせばいい程度になるから
>>138ですでに書いたことだけどね

> あなたにとってシェルがベストな選択肢なら、シェルがいいんじゃね?

クラウド使って大規模アプリ開発をするようになると必然的にそうなるよ
トラブルを避けるためローカルとサーバーでなるべく同じ環境でやるのが良いんだが、
サーバーと同じOS使って開発するのは現実的ではない。
だからDockerを使ってアプリの実行環境だけを同じにする。

Dockerを使うと冪等性は必要なくなり、デプロイの内容もシンプルになる
一番楽なのがシェルスクリプト。Dockerfileもシェルスクリプトがベースになってる。

>>154
> 彼は一体何と戦ってるのか…

俺? 俺は↓これと戦ってる。これと

127 返信:デフォルトの名無しさん[sage] 投稿日:2017/10/15(日) 11:35:26.06 ID:jiVarmiT [9/10]
>>125
>まずDocker
ねーよwww
普通にansible使え
0157デフォルトの名無しさん
垢版 |
2017/10/15(日) 19:42:08.08ID:/8UsyUgn
> 他にもPuppetもあるしChefもある

PuppetもChefも、普段誰もがシェルスクリプトでやってることを
置き換えるには、重すぎる。いつもやってることをやるだけだろ?
本来新しいことは何も覚えなくてすむはずだ。

> 全部sshとshで実現できるってんなこといったら、その他スクリプト言語もラッパツールも全否定だからな…

そんなことは言っていない。
sshとshで実現できると言ってるのは、普段シェルでみんながやってる作業だけだよ。

パッケージのインストールとかその設定ファイルの変更とか、
そんなのその他のスクリプト言語やラッパーツールでやってないでしょw

普段やってることは普段やってる方法でやりましょうってこれだけの話だよ。
みんなシェルスクリプトでやってるんだからそれでいいじゃん。アホらしい。
0158デフォルトの名無しさん
垢版 |
2017/10/15(日) 20:13:25.63ID:Ad4/97ip
俺は逆にクラウド使うって大規模なクラスタ組む時以外はansibleなんて使わんけどな
できることはシェルと同じでもRoleやinventoryパターンに慣れたらsshだのシェルだのなんてやってられんわw
0159デフォルトの名無しさん
垢版 |
2017/10/16(月) 15:59:08.48ID:1+BaSHIB
可読性とモジュール性とかカプセル化、の問題じゃね?
シェルにはオブジェクトや配列はない。
それどころかまともに型もない。
Ansible Puppet Chefはシェルに型と配列記法を
無名関数なんかを使えるようになっているから付加価値はあるだろ、
1つあれば十分のようには思えるが。
C言語あるからわざわざJava覚える必要ないって
言わないでしょ?
0160デフォルトの名無しさん
垢版 |
2017/10/16(月) 20:48:46.81ID:rY47nFh2
インベントリ管理は便利だと思う
Yamlはなぁ…これpythonそのままでよかったんじゃねえか?
0161デフォルトの名無しさん
垢版 |
2017/10/16(月) 23:20:32.48ID:t2YDIrX7
>>159
DSLって知ってる?ドメイン固有言語。
特定のタスク向けに設計されたコンピュータ言語

シェルというのはユーザーとコンピュータとの対話を行うために作られたもので、
慣れも有るだろうけど日常的な操作(=特定のタスク)が使いやすいもの
シェルスクリプトはその日常的な操作をスクリプトにしたもの。
言い換えると日常的な操作に特化したDSLなんだよ。

型や配列が使えるからということで、シェルの代わりにプログラム言語使って
system()関数とかでコマンド呼び出しとかしないでしょ?

だからプログラム言語的な能力で比較するのは意味ないんだよ。
一般的な言語の機能を捨ててまで、特定のタスク向けに設計しているわけなんだから。
用途(プロビジョニング)を前提に適しているかどうかって話をしないと

> シェルにはオブジェクトや配列はない。
bashなら配列も連想配列もある。
が、そもそもプロビジョニングという用途で配列とか連想配列は使わん
0162デフォルトの名無しさん
垢版 |
2017/10/16(月) 23:23:09.34ID:t2YDIrX7
YAMLとかPythonがダメって言ってるんじゃないよ。
普通に何かを作る時は使ってるし。

普段やってる作業を、別のやり方に変えるのが無駄だなぁって話

その別のやり方に大きなメリットが有るならまだしも、
別のやり方に変えるプラグインが必要で、そのプラグインができることしか
できなくなってしまうとか、劣化してるからさ。
0163デフォルトの名無しさん
垢版 |
2017/10/17(火) 03:23:19.58ID:IfQVHUWW
>>161
プロビジョンで配列や連想配列を使わないんじゃなくて
便利じゃないから誰も使わないだけだよ。
bashに配列があっても集約する対象として複雑な概念が
オブジェクトとして構造化されていないから。
bashがRubyやPythonが出て来る前から設計されていたわけじゃないし
Chefとかはbashよりもさらに進化してオブジェクト指向に対応した
プロビジョン用DSLなわけじゃん。
Chef内でシェルも記述できるんだからシステムコール使いたいなら
そこで使えばいい。
依存関係もbashでInculudeなりラッパーするなりより
プロビジョンツール使ったほうが整理しやすいよ。
0164デフォルトの名無しさん
垢版 |
2017/10/17(火) 03:35:54.06ID:pADXjsAY
要る要らないとかどうでもいいわ好きなもん使えよ
0168デフォルトの名無しさん
垢版 |
2017/10/17(火) 09:55:50.26ID:0cEpFleP
>>163
なんかお前、本末転倒になってるよな。
やりたいことベースじゃなくて
配列が有るから配列使うんだ、
オブジェクト指向だからすごいんだ
みたいな

> Chef内でシェルも記述できるんだからシステムコール使いたいなら
> そこで使えばいい。

ならシェルスクリプトでやればいい。
っていうか普段のセットアップ作業でシステムコールなんか使わない

だから普段の手動のセットアップ作業を思い出せって
そこで必要なものしかいらないんだよ。配列とか使ってないだろ。
(もちろんループなどはシェルスクリプト使える)
0169デフォルトの名無しさん
垢版 |
2017/10/17(火) 11:59:23.93ID:H3QSh8hS
配列も連想配列も使うだろ
俺はansibleは嫌いだしシェルも可読性ゴミだからpythonで書いてるけど
0170デフォルトの名無しさん
垢版 |
2017/10/17(火) 22:31:09.27ID:0cEpFleP
>>169
どういう時に配列や連想配列使う?
何度も言うけどシェルを使っている時という前提は忘れないでね。

シェルを使うの具体的な例は、cdやlsやapt-getやcpやrmなど
CLIコマンドを使って何かしらのアプリのインストール作業
プロビジョニングの話なんだからそれぐらいは前提

あとforで$@をぐるぐると引数を回すのは配列ではない。
だってそれを配列と言ってしまうと、>>159の前提である
> シェルにはオブジェクトや配列はない。
が崩れてしまうから、引数のことではないのは明らか
0171デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:27:36.98ID:YM8Fx9+d
>>170
サブネット全体に同じ設定入れたいときに、CIDR表記からipの配列作って応答あるものだけの配列にして設定ばらまいたりする
あと、mongodbのインストールするときにsource listにおまじない書かなきゃいけないんだけど、
osのversionによって書き方が違うからversionとおまじないを連想配列で持ってるよ

てかお前はシェル使ってりゃいいじゃん、誰も否定してないよ
リッチなスクリプト言語もツールも使わなきゃ死ぬってわけじゃないんだ
シェルだけに一生殻にこもっててくれ
0173デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:33:06.95ID:0cEpFleP
>>171
> サブネット全体に同じ設定入れたいときに、CIDR表記からipの配列作って応答あるものだけの配列にして設定ばらまいたりする
それなら別に配列使わなくても可変長引数で良いよね?

> osのversionによって書き方が違うからversionとおまじないを連想配列で持ってるよ
それはcaseでやれる

って感じで使わないと思うわけだよ。

難しく考えすぎじゃね?絶対配列じゃなきゃできないって思い込んでるでしょ?


> シェルだけに一生殻にこもっててくれ
俺は適材適所で使う道具を選んでいるだけ
PerlもPythonもRubyも使う。お前は全部Pythonなんだろ?
0174デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:36:11.06ID:YM8Fx9+d
いやだから好きにしろよ…
shellでcaseなんて普段書かねーからぐぐらねーとswitchなのかcaseなのかもわかんねーよめんどくせー
適材適所で使う道具選ぶ作業にもどれ馬鹿
0175デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:37:48.36ID:ivyQ9Kui
こんなやつ職場にいたら最悪だな
なんでシェル使わねーんだよ!!!とか言ってくるんだろ?
0177デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:42:10.74ID:0cEpFleP
>>174
> shellでcaseなんて普段書かねーからぐぐらねーとswitchなのかcaseなのかもわかんねーよめんどくせー

その一言でよくわかったよ。

俺はどれが適切かという使う道具の話をしてる。
でもあんたの理由は道具じゃなくて「人」じゃん

まず道具を使えるという前提で話しませんか?
0180デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:44:56.73ID:YM8Fx9+d
プロビジョニングになぜ機械学習が必要なのか…
プロビジョニングが前提だと言ってたおじさんはどこにいったのか
0181デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:45:01.14ID:0cEpFleP
>>175
> なんでシェル使わねーんだよ!!!とか言ってくるんだろ?

普段シェルを使ってセットアップしてるわけで
そのやり方を知っているはずなのに、
なぜわざわざansibleに置き換えるんですか?って

何かのバージョンが上がってansibleのプラグインが
対応してねーとか言ってるのを聞くたびに思ってるよw
0182デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:46:29.72ID:YM8Fx9+d
ちなみにそのansibleの対応してないプラグインってのは具体的には何なの?
普通ansibleってプラグインじゃなくてモジュールって言うと思うけど
0183デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:46:47.23ID:0cEpFleP
>>180
いや、話を聞けよw

俺が適材適所で言語を選んでいるってだけの話だ

> シェルだけに一生殻にこもっててくれ
とか言い出したから、俺はこもってないって話をしただけだ。

ちょっと落ち着こうぜ?w
0184デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:48:43.51ID:EqLf+bAl
Dockerとansibleのちがいがわかってなかったやつはただの無知だけど
こいつはキチガイだな
0186デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:51:08.93ID:YM8Fx9+d
例としてあがってきたのがインストール以上のことをするモジュールでワラタ
そんなんバージョンあがったら改修しなきゃいけないのはシェルスクリプトでも同じじゃん
ばか?
0187デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:56:54.40ID:0cEpFleP
>>182
まあ対応してないモジュールも有るだろうけど、
俺が今いったのは新しい設定にモジュールが対応してないって話

具体的に何?と聞かれたらIssuesみろよ。大量に〜って思うだけなんだが
https://github.com/ansible/ansible/issues
https://github.com/ansible/ansible/pulls


まあ例えばこんなのとかわかりやすいかな?
tcpってオプションを選択できるようにするんだろうけど
こういうのだよ。普通にCLIでやってりゃできることなのに、
モジュールを更新しないと使えない。
https://github.com/ansible/ansible/pull/31228/files

ずーっと最新バージョンを追いかけていって大変だなぁとしか思えない
0188デフォルトの名無しさん
垢版 |
2017/10/17(火) 23:58:23.86ID:YM8Fx9+d
おーけーわかった
ぼくもうシェルスクリプトしか使わないよ
みんなもおじさんの言うことを聞くんだぞ!
0189デフォルトの名無しさん
垢版 |
2017/10/18(水) 00:00:38.25ID:HhDhJUF4
>>186
> そんなんバージョンあがったら改修しなきゃいけないのはシェルスクリプトでも同じじゃん

何度も言うけど、シェルスクリプトは自分で普段使っているわけでやり方知ってる。

シェルスクリプトでのやり方知ってるのに、対応するAnsibleの設定はどれだーって調べて
モジュールが対応していなければ、対応されるのを待たないといけない(自分でPR出してもいいけどさ)

俺が無駄だって思ってるのは、バージョンが上がった時の改修作業じゃない。
CLIなら改修する方法は公式見りゃわかるだろうが、
Ansibleを使ってると、公式で調べた上に、対応するAnsibleの書き方を
調べるという追加作業が増えたり、中間層のモジュール周りでトラブルになるのが無駄だって言ってる。
0190デフォルトの名無しさん
垢版 |
2017/10/18(水) 00:02:16.30ID:5NdiYnkp
仮想環境とまったく関係ない話してるシェル厨が大暴れしててワラタ
もうシェルスレにしろよwww
0191デフォルトの名無しさん
垢版 |
2017/10/18(水) 00:03:53.87ID:HhDhJUF4
>>188
プロビジョニングに関してはそれが良いと思う。
だってみな手動でのプロビジョニングやってるはずで、
シェルスクリプトでのやり方も知ってるわけだからね。
0193デフォルトの名無しさん
垢版 |
2017/10/18(水) 00:05:23.88ID:HhDhJUF4
>>190
シェルスクリプトはDockerfileやVagrantfileでも使用するよ。
特にDockerfileはシェルスクリプトまんまと言っても過言じゃない。
ENTRYPOINTで呼び出すスクリプトも炊いてはシェルスクリプト
まあ軽いイメージにわざわざプログラム言語入れないしね。
0196デフォルトの名無しさん
垢版 |
2017/10/18(水) 00:08:45.88ID:GaIyCTlI
ansibleのフォーラムで暴れてこいよ、お前ら全員あしたからシェル使え!!!って
なんで2chでクソ底辺の戯言聞かされなきゃいけねーんだ
0197デフォルトの名無しさん
垢版 |
2017/10/18(水) 00:10:21.61ID:YCPgdWPh
動かしたいホストで動かしたい処理を動かせるならansibleなんてめんどくさいものをわざわざ使わなくていい
ってことはシェルとSSHで十分なんだよな
0198デフォルトの名無しさん
垢版 |
2017/10/18(水) 00:15:26.03ID:HhDhJUF4
仮想環境と全く関係ない話だけど、
冪等性が必要だったのはマシンを壊さず使い続けるためで
何度もプロビジョニングを行う必要性から冪等性が必要だった

ここで仮想環境の話に戻すと、仮想環境では壊して作り直せば
いいので、冪等性が必要なくなった。

仮想環境だけで仕事が回ってるって会社は少ないだろうから
仮想環境以外のものにAnsibleを使うのはありだろう。

だけど、このスレ仮想環境だからね。
このスレ的にはAnsibleは不要ってことなんだよ。
(このスレと関係ある話をしてみましたよw)
0200デフォルトの名無しさん
垢版 |
2017/10/18(水) 00:24:25.53ID:HhDhJUF4
>>197
それな。Ansibleの問題点の1つとして
リモート先にpythonがインストールされて
いなければいけないって問題が有る。

この制約もあるんでDockerfileでansible(python)は
使わないってのもあるんだろう。ベースとなる
ディストリにpythonが入っていないbusyboxを使う場合もあるしさ

例えpythonが使えたとしてもdockerイメージ作るだけの作業で
Dockerfileの中でansibleをインストールなんてのはやりたくないな。

(これも仮想環境コンテナの話w)
0202デフォルトの名無しさん
垢版 |
2017/10/18(水) 22:06:41.02ID:HhDhJUF4
>>201
VagrantはDockerとは別のものだよ。

ただしDockerを使えば物理マシンでも比較的楽に
開発環境を作れるからVagrantを持ち出すまでもなくなってる。

でもそれはMacOSの話でWindowsは少なくともBash for Ubuntu for Windowsが
まともに動き出してからだな。と言ってももうベータ外れるらしいが。

だから(MacOS or Windows)+Dockerで開発するのが実用的と
みなせればVagrantはいらなくなる。

Dockerが駆逐するというより、Dockerの力を借りて
物理マシンでの開発に駆逐される。という感じ
0203デフォルトの名無しさん
垢版 |
2017/10/20(金) 00:02:17.81ID:vd2jZWHS
このスレはシェル厨に支配されました
以下、シェルで出来る事を他の方法でやる人は粛清されます
0206デフォルトの名無しさん
垢版 |
2017/10/20(金) 06:24:49.56ID:l3SzA2hH
Docker原理主義者って全部Dockerでやるの?
フロントのNGINXとかデータベースは普通のサーバーのほうが使いやすくねえか?
0208デフォルトの名無しさん
垢版 |
2017/10/20(金) 09:53:29.13ID:uOisOSsS
>>206
Docker原理主義だけど全てDockerで
やるわけじゃないよ。

Docker原理主義っていうのは正しい用途に
Dockerを使うのであって、間違った用途に使うわけじゃない
0210デフォルトの名無しさん
垢版 |
2017/10/21(土) 10:40:49.52ID:ut7aXw9f
vagrant: 仮想ネットワーク構築
ansible: シェルスクリプトの起動
シェルスクリプト: (初回のみ) install docker、docker pull、docker run
0211デフォルトの名無しさん
垢版 |
2017/10/21(土) 11:40:16.52ID:Nlq4KP6d
Vagrantはクライアント環境の再現にしか使ってない
インスタンスに対するdockerとかpipとかのインストール、ソースとかイメージのビルド、実行環境でのdocker pullとrestartはAnsibleを使ってる
DockerはLB、webアプリケーションなどDBを除く、ほぼ全てに対して適用
だけど最近はLBもELBだけでよくね?的な瞬間もあるので、もはやサーブレットとかIronくるむ以外には、あんまり使ってない
ビルド環境をイメージ化しようかと思うこともなきにしもあらずだけどビルドサーバー立てるほうがメンテが楽なので、今はやってない
0212デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:02:43.48ID:1eBICzfj
docker buildすればWebアプリケーションのデプロイが楽とはいうけど
そんなことしなくてもデプロイ簡単だよな
dot netだったらフォルダ同期してプロセス起動するだけだしランタイムのインストールも要らない
dockerだと鯖にdockerを入れなきゃいけないけどそれがコマンド一発ではないからめんどくさい
0213デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:05:31.39ID:Nlq4KP6d
>>212
.Netだと事実上WindowsServerじゃないと動かないじゃん…
デフォルトでsshすらあがってないOSは、さすがに手が出しにくいな
0214デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:09:01.62ID:Nlq4KP6d
そしてフォルダにしちゃうとバージョン管理がしにくそう
ロールバックの仕組みが入れづらくないかい?
てか、.NetならAzureとVS組み合わせれば、同期がどうのとか細かいことは気にせず、めちゃ簡単に最新版をデプロイできるんじゃないの?
0216デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:26:15.36ID:Nlq4KP6d
バージョン管理とデプロイが別なのは同意
失礼しました

それにしても、今は.Netも普通にLinuxて動くんだね
いろいろと幅が広がるな
0217デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:33:36.97ID:zkU9oivG
>>212
いや、根本的に発想が違ってる。
「ランタイムライブラリのインストールはいらない」を前提にしているが、
そもそもの問題は、

1. アプリを開発する
2. そのアプリはいろんなライブラリを使用している

という前提において、

理論的にはライブラリのバージョンが異なっていても互換性が完璧なら動くはずだが、
バージョンが異なると動かなくなることがある。
という現実的な問題を解決するために生まれたんだよ。

アプリを完璧に動かしたいのであれば、開発したアプリだけではなく
アプリが使用しているライブラリなど全てを含めた「パッケージ」を
作らなければいけない。

一つの手としてディレクトリに使用するライブラリを全部入れる
なんて方法もあるだろう。Dockerはその発展系と考えればいい。
0218デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:33:57.53ID:zkU9oivG
そして都合がいいことにLinuxではカーネルとユーザーランドという区別の仕方が有る。
例えばディストリが違っていても、カーネルは(バージョンの違いはあれど)同じものを使っている。
だからディストリの差というのは(ドライバなどカーネルレベルのモジュールを除いて)
ユーザーランドの違いといえる。カーネルは共通のものが使える。

カーネルは小さい機能に留めておくことで高い互換性を保っている。
そしてLinuxを構成する大部分はユーザーランドレベルのもの。

Dockerの話に戻すと、Docker(コンテナ)の仕組みっていうのは、
アプリが使用しているライブラリをディレクトリにまとめるなんてちゃちなやり方ではなく、
今、ユーザーランドの説明をしたろ? なんと大胆にカーネル以外の全てを1つのイメージにまとめてるんだよ。

話をまとめると、Dockerというのは開発したアプリをちゃんと動かすために
動かして検証した環境、小さいカーネル以外をすべてパッケージ化したもの。
だからLinuxのカーネル+Dockerがあれば、Dockerイメージだけをデプロイする。
デプロイ先の環境を意識する必要ががないから、デプロイが楽なんだよ。
このOSでは動作保証していません。このライブラリのバージョンでは動作保証していません。なんてことがない
0219デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:36:07.71ID:Nlq4KP6d
.Netはそういう難しい話はないでしょ
3系使うか4系か4.x系かの違いくらいで、それはまるっとみんなで揃えましょう精神なんじゃねーの?
0220デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:38:41.42ID:zkU9oivG
>>213
> デフォルトでsshすらあがってないOSは、さすがに手が出しにくいな

Dockerだとデプロイ先にSSHなんて不要だからね。
カーネルとDockerサーバーだけあれば動く。

もちろんそのOSに.netのとあるバージョンが
インストールされていることなんて制約はない。

.netがインストールされていることと
dockerがインストールされていることは
一緒ではないか!と思うかもしれないがそれは違う。

テストして動作確認したアプリは、.netの場合
そのインストールされている.netライブラリの機能を利用しているが
dockerの場合は、dockerのライブラリを利用しているわけじゃない。

dockerの場合dockerイメージを起動するのに必要ってだけで、
アプリが利用しているのは、イメージに含まれているライブラリと
小さなLinuxカーネルのみでアプリ自体はdockerには依存していない。
アプリが.netに依存しているのとここは大きな違い
0221デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:42:02.41ID:mrPCTHTL
ID:zkU9oivGはなんでみんなが知ってる事を、だらだら書いてるの?
せめて、お前がどういうシステムをどういう環境でどう運用してるか書けよ
0222デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:45:23.73ID:zkU9oivG
>>219
> 3系使うか4系か4.x系かの違いくらいで、それはまるっとみんなで揃えましょう精神なんじゃねーの?

だから同じ4系でも互換性問題は発生するいう考え方だよ。
それを防ぐためにアプリ自体に.netをまるまる含めたようなもの

アプリに.netが含まれていればアプリを配布するだけでいい。
でも、アプリに含まれていなければ、.netのアップデートをしなければいけなくなる。
0223デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:46:35.39ID:zkU9oivG
>>221
知らないからdockerの方がデプロイが楽って分かってないんでしょw

誰もがあんたみたいに知ってるわけじゃないんだから
知ってる人は黙ってなさい
0224デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:49:27.16ID:mrPCTHTL
むしろお前のほうが.Net開発の現場を知らなそうだけど
どんなに便利でも、Dockerなんて使ってないよ
0225デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:52:16.98ID:zkU9oivG
>>214
> てか、.NetならAzureとVS組み合わせれば、同期がどうのとか細かいことは気にせず、めちゃ簡単に最新版をデプロイできるんじゃないの?

「AzureとVS組み合わせれば」っていうのがダメだね。
それは「簡単」ではない。

Dockerは「Dockerサーバーがあれば」デプロイできる。
その「AzureとVS組み合わせる」のは大変だが、
「Dockerサーバー」はどこでも存在する。

手元のWindowsマシンだろうが、Linuxマシンだろうが、MacOSマシンだろうが、
「Dockerサーバー」は存在する。

だから手元にデプロイしたものをそのままAzureだろうがAWSだろうがGCPだろうが
オレオレクラウドだろうが、めちゃ簡単にデプロイできる。
こういうレベルのものを「めちゃ簡単」と言うんだよ。

この手元にデプロイしたものをっていうのが本当に便利で、
開発してテストしたら、それは実機環境でテストしてるのほぼ同じなんだよ。
違いは小さなカーネル部分だけ(Dockerサーバーのバージョンには依存していない)
0226デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:53:44.30ID:Lfp6S+wn
>>217
だからその厳密にバージョン指定された依存関係まで含めて簡単にビルドできるんだよ
外部依存を全く無くしてポータブルなバイナリを作るのも簡単
ビルダだけで済む話なのにそのためにdockerを使うのは過剰すぎる
0227デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:53:44.56ID:zkU9oivG
>>224
> どんなに便利でも、Dockerなんて使ってないよ

すまんな。Dockerが今は便利かどうかの話をしているんだ。
あんたの現場特有の話はしてない。あんたの会社の話を
したって意味ないじゃないw
0228デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:59:17.59ID:zkU9oivG
>>226
.net以外のものを組み合わせるときは?

全てのライブラリが.netで作られているならば可能かもしれないけど
それは現実的ではない。Cのライブラリが使われることも有る。
RubyやPythonで作られているかもしれない。
すでに存在するnginxやmysqlなどと組み合わせることも有る。

Javaもそうだけど、.NETやJavaの世界で完結していればできるっていうのは
結局.NETやJavaの世界で完結していなければ出来ないって言ってるのと同じなんだよ。
それは現実的ではないよね。
0229デフォルトの名無しさん
垢版 |
2017/10/21(土) 12:59:28.60ID:mrPCTHTL
>>226
ほんとこれ
NuGetでそこらへんは用が足りてるんだよね

てかVSとAzureより、Dockerのほうが楽とか狂気すぎ
Windows上でDocker動くようにするほうが大変だろ
そんで得られるメリットがプロセスの仮想化です!ってやってられんわ
0232デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:02:24.19ID:zkU9oivG
.net使うにしても、dockerイメージを使えばデプロイは楽になるだろうね。
なぜなら、そのdockerイメージの中に.netランタイムまで入っているから。

Dockerサーバーがあれば(それはきっと手元のマシンに入っているだろう)
どこぞのdockerイメージを、手元の環境を見直すこと無く直ぐに動かすことができる。

Windows 10で最新の.netがインストールされていること
なんて制約はない。
0233デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:02:55.54ID:zkU9oivG
>>230
> .Netで完結します
遠吠えwwww

誰が、そんな説明で納得すると思ってんるんだ。
出直してこい
0234デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:03:35.60ID:uF51TTqU
ありとあらゆる条件が全く同等という保証がなければDockerだろうがなんだろうが実機テストは必要
それがテストってものだよ
手元の仮想環境と鯖の仮想環境はおんなじだ(だと思う)からテストはしなくていいなんてのは実社会では通用しないぞ
0235デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:04:51.34ID:lul59eSB
Dockerはwindowsだと10以降しか対応してなくね?
開発環境が窓っていう、かわいそうな現場は大半がまだ7だからdockerなんか動かないだろ
0236デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:06:43.75ID:zkU9oivG
>>234
あ、はい、時間とコストの問題です。(言わなきゃ分からんかな?)

手元が実機とほぼ同じであれば、実機で見つかるバグは手元でほとんど再現します。
だからより早く少ないコストで修正できるということです。

可能か不可能かのはないをするのは実社会で通用しないぞ?w
重要なのはどれだけコストが小さくできるかだ。
0239デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:10:45.14ID:uF51TTqU
>>236
おやおや
君の発言からはまるで実機テストは必要ないと言っているように聞こえたが?
新しい技術を覚えたてで興奮する気持ちはわかるが発言は冷静になってからにしたほうがいいぞ
0240デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:12:34.46ID:zkU9oivG
ふむ。さすがマイクロソフト。
当然だが組み合わせて使うことの意味をちゃんと知ってるな。

NET Core アプリケーションの Docker イメージのビルド
https://docs.microsoft.com/ja-jp/dotnet/core/docker/building-net-docker-images

NET Core と Docker を一緒に使用する方法を理解するには、まず、提供されるさまざまな
Docker イメージと、適切な使用のタイミングを把握する必要があります。
ここでは、提供されるバリエーションを確認し、ASP.NET Core Web API をビルドし、
Yeoman Docker ツールを使用してデバッグ可能なコンテナーを作成し、
さらにプロセスにおいて Visual Studio Code がどのように役立つかを簡単に確認します。
0242デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:13:53.59ID:zkU9oivG
>>239
> 君の発言からはまるで実機テストは必要ないと言っているように聞こえたが?

ならお前の耳が悪いんでね〜の?w

聞こえたのは「お前」の耳(目)
言ったのであれば、それは俺の口(手)だがw

いえ「実機テストが必要ない」と書いてある文章を
示せるというのであれば、示して良いんですよ?w
0244デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:17:10.24ID:zkU9oivG
コンテナー - 従来の .NET アプリを Docker で最新化する
https://msdn.microsoft.com/ja-jp/magazine/mt797650.aspx

> このような従来のアプリケーションでは依然として大きなビジネス価値が提供されていますが、
> その保守、アップグレード、拡張、および管理は難しくなっている可能性があります。

やっぱり.NETでは保守、アップグレード、拡張、および管理は難しくなってるんだね。

> 同時に、このようなアプリケーションをすべて作り直すことも、そのために必要な投資に
> 見合わない場合があります。ただし、軽量なコンテナー内でアプリケーションを実行する
> プラットフォームである Docker と、Windows Server 2016 を併用することで、
> 従来のアプリケーションの寿命を伸ばすことが可能です。つまり、機能を追加し、
> セキュリティとパフォーマンスを向上して、継続的配置に移行します。
> それも、時間がかかるうえにコストが高い再構築プロジェクトを実施する必要はありません。

継続的配置(配置=デプロイ)がDockerは便利だってMSも認めてるね。
0245デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:18:45.25ID:uF51TTqU
>>242
自分のレスを冷静に見つめ直してごらん
あたかもテスト不要であるように取れる発言を何度もしてるよ
これから社会に出るのだろうし反省することも覚えたほうがいい
0247デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:23:50.11ID:zkU9oivG
>>245
> あたかもテスト不要であるように取れる発言を何度もしてるよ

引用できない時点で、説得力ゼロ
できないなら、なんなら俺が引用してあげようか?

例えば >>225
> 開発してテストしたら、それは実機環境でテストしてるのほぼ同じなんだよ。
> 違いは小さなカーネル部分だけ(Dockerサーバーのバージョンには依存していない)

「ほぼ」同じと書いて有ることから、全く同じではないということがわかる。
そして「違い」について書いてあるから、違いが有ることも明示されている。
よって実機環境でテストが不要ということにはならない。

さて、次はあんたの番だ。
0248デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:25:22.89ID:zkU9oivG
>>246
ID見ればわかるし、俺にコテを付けるメリットがない。
というか、5ちゃんねるでコテはつけないというは
俺の中でとっくの昔に決めたルールなので言うだけムダだw
0251デフォルトの名無しさん
垢版 |
2017/10/21(土) 13:46:47.12ID:uF51TTqU
>>122
>だからローカルで開発で使用していたDockerイメージをそのまま
>クラウドの仮想化サービス上に持っていくことができる。
>その作業も単にdocker runするだけ

JavaのWOTAとの対比で語っちゃってるしこれはそうとしか読めんなぁ
0253デフォルトの名無しさん
垢版 |
2017/10/21(土) 14:01:47.02ID:zkU9oivG
>>251
持っていくことができるよ?
持っていってテストするんだろ?
何を言ってるんだとしか思えんわw
0254デフォルトの名無しさん
垢版 |
2017/10/21(土) 14:06:21.17ID:uF51TTqU
>>253
ん〜
ちょっと厳しいなその反論は
じゃあなんでJavaと対比したの?ってなるよね

Javaはwrite once, test everywhereのクソだけどそれに比べてDockerは〜
っていう文脈でしょ?
0255デフォルトの名無しさん
垢版 |
2017/10/21(土) 14:18:41.57ID:zkU9oivG
>>254
ワロタwww
お前バカだわ。うん。バカだわ

Javaが主張した言葉、Write once, run everywhere
で、それがが批判されてるのは、実行できると言うが
そこらじゅうでデバッグ(テスト)しなきゃいけないって批判されているほど、
Javaのrun everywhere「どこでも走るレベル」は"低い"って話だ。
低いから、そこらじゅうでデバッグ(テスト)しなきゃいけない

なぜか? そりゃそうだ。各OSごとで同じものを使うのではなく
各OS毎にライブラリ側で抽象化レイヤを開発してるからだ。
同じものを使っているんじゃない。違うものを使って同じに見せかけてるから
それじゃ互換性レベルは低くなるよねってことだ。

それに比べてDockerは同じものを使う。ライブラリを各OS毎に用意するのではなく
同じものをイメージに同梱する。だからJavaよりもはるかに高いレベルで
DockerはWrite once, run everywhereを実現している。
違いは高い互換性を持つカーネルのみだからな。
Write once, run everywhereなわけだ。


で、お前は、(Javaが主張した言葉)Write once, run everywhere は
全くテストしなくていいって意味で言ってると思うか?

お前がバカだって言った意味がわかったか?

お前は(Dockerが実現している)Write once, run everywhere を
実機で「全く」テストしなくていいという意味だって勘違してるなってわかったからだよ。
0256デフォルトの名無しさん
垢版 |
2017/10/21(土) 14:21:12.73ID:zkU9oivG
結局、.NETも同じことになるんだろうな。

Windows実装版とLinux実装版で違いが有るのなら、
全く同じように動くわけじゃない。

同じものを使わなんと同じようには動かんよ。
理論的には動くだろうけど、違う実装なら違いは出る。

全く同じものを使うDockerの利点はそこに有る。
0257デフォルトの名無しさん
垢版 |
2017/10/21(土) 14:24:16.29ID:uF51TTqU
>>255
残念だけどそう考えてるのは君だけだよ
君のレスを読んだ人は
あ、こいつDocker使えばテストいらんと思ってるな
と思うわけだ
社会に出たら人からどう見られるかってのも大切だから覚えておいてね
0258デフォルトの名無しさん
垢版 |
2017/10/21(土) 14:31:43.74ID:zkU9oivG
まあ別の言い方で簡単に>>254がバカだって証明するならば

> Javaはwrite once, test everywhereのクソだけどそれに比べてDockerは〜
> っていう文脈でしょ?

write onceはJavaもDockerも同じなので省略するとして

Javaは、test everywhere(どこでもテスト)
Dockerは、not test everywhere(not どこでもテスト)

「どこでもテスト」の反対は「テストなし」ではない
「全て」の反対は「一部」であって「無」ではない
0259デフォルトの名無しさん
垢版 |
2017/10/21(土) 14:33:36.33ID:zkU9oivG
>>257
> 君のレスを読んだ人は
> あ、こいつDocker使えばテストいらんと思ってるな
> と思うわけだ

だからどこにそう書いてある?引用してみて。

すでに俺は「テストいらないと言ってない所」を引用済み

お前が、他人の説明を間違って解釈して喚いていているやつってのは証明した。
社会に出たら人からどう見られるかってのも大切だから覚えておいてね
0260デフォルトの名無しさん
垢版 |
2017/10/21(土) 14:36:58.71ID:zkU9oivG
今回は見事論破(笑)できたから

> ちょっと厳しいなその反論は
と言えなかったんだろうなw
0261デフォルトの名無しさん
垢版 |
2017/10/21(土) 21:13:10.64ID:OISii71C
docker使うケースは頻繁なデプロイが前提だったり迅速なスケールアウトが必要だったりの事情があるはずで、
そういう場合に例えば速度面でVMより起動が速い事が一番のメリットだ、という理由があって使うんじゃねーの?
あと消費リソースがVMより少なくて済むとか。

実行環境のパッケージングだけならVagrantでもansibleでも事足りるわけで、
それこそ全部シェルでやれっつーシェル厨もいるだろうけどw
まぁデプロイ楽にする方法なんて他にもあるし、要求や制約に合わせて選ぶもんだ。

メリットが享受できないユースケース出してきてdocker要らないっつーのも馬鹿だし、
他に方法があるのにdockerをお押しつけるのも馬鹿。

テストにしても、ライブラリのバージョン依存のバグを本番環境でのテストまでに見つけられない方が問題なわけで、
ID:zkU9oivGが言いたいのは、そこのバグはもっと早期に潰してる前提でしょ?
テストなんて工程別に目的持ってやるもんなのに、全部ひっくるめて語るのは暴論だわな。
0262デフォルトの名無しさん
垢版 |
2017/10/21(土) 22:19:05.77ID:01fxNEyn
>>261
> 実行環境のパッケージングだけならVagrantでもansibleでも事足りるわけで、
だから全く別のものを混ぜないでくれ。分かってないことがバレバレだろ。

ansibleは構成管理ツール。マシンの環境を構築するツール
無理やりDockerに対応づけるならば、Dockerfileを使ったDockerイメージのビルド作業だよ。
(Dockerイメージのビルド作業にAnsibleを使うようなやつはいないが)
ansibleはDockerと違ってイメージを作るものじゃない。
ただのセットアップ手順書だ

Vagrantは、仮想「開発環境」構築ソフトウェア実機で使うことは想定されていない。
無理やりDockerと関連付けるならば、Vagrantで構築された仮想環境には
Dockerサーバーもインストール済みで、すぐにDockerコマンドが使用できる。
みたいな使い方をするんだ。

例えば開発環境の話をしてるとして、 Vagrantで作った仮想マシン VS 物理マシン(Windows、MacOS、Linux) の
どちらであなたは開発してますか?とかこういう使い方をするんだよ。

仮想マシン上でもDockerは使えるし、物理マシン上でもDockerは使える。
物理マシン上で作成したDockerイメージがVagrant上でも動く
クラウドでもDockerサーバーをインストール済みのVMイメージが公式で用意されているから
同じDockerイメージをそのままクラウドでも使うことができる。

Vagrantで作ったイメージが、クラウド上の仮想マシンで動くことなんてまずないからな。
Nested VMは茨の道だよ。それが出来たとしても起動時間、使用メモリ、ネットワークの点から
デメリットしか存在しない

Vagrantが実行環境のイメージ化(=実行マシン構成が含まれる)とするならば
Dockerはアプリケーションのイメージ化だ。アプリケーションにはマシンの構成が含まれないから
物理・仮想マシン関係なくどこででも動くんだ。ただの1つのアプリケーションだもの
0264デフォルトの名無しさん
垢版 |
2017/10/21(土) 22:27:51.08ID:01fxNEyn
そういやAnsible Containerってのができたんだっけw

なんかメリットあんの?
コンテナイメージの作成がDockerfileじゃできないほど
複雑なものでも作るの?

シェルスクリプトが使えない人の救済用以外の
メリットがあるなら教えてください。
0266デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:00:55.77ID:0M1ELFL1
てかシェルスクリプト使えない人ってどゆこと?
窓ユーザーってこと?質問の意味がよくわからん…
0267デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:13:03.22ID:sDdgCD4Q
>>265
お、おう。
それはdocker buildコマンドを叩く代わりに
ansibleを使っているってだけの話だな。
dockerコンテナへのデプロイではなく

どころで普段、端末からdocker使えるか?
docker build -t tag . とか
docker run -it debian /bin/bash
みたいなのそらで打てるか?

ansible使わないとコマンド打てないっていうんじゃ恥ずかしいぞ
0269デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:17:06.88ID:oq9fIgmy
buildもpushもpullもrunも全部ansibleでやるときあるよ

dockerの基本的なコマンドそらでうてないやつなんているの?
ローカルでやるときはいちいちansibleなんてつかわんのに

質問の趣旨は??
0270デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:19:08.12ID:oq9fIgmy
>>268
え、設定ファイルってDockerfileをってこと??
それをlineinfileとか使って動的生成する人ってことかな
そんな人いないと思うけど…
0271デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:23:02.03ID:sDdgCD4Q
>>269
そらでうてるものに対して対応するansibleの設定探すの面倒じゃないかなーって思って
それに例えばマイナー(?)なオプションbuild時にラベルつけたくなったらどうするの?とかさ
モジュール対応してないでしょ?
0272デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:27:52.52ID:sDdgCD4Q
ローカルでやるときはいちいちansibleは使わない

そうだよね。

まず最初にansibleを使わないで作業する
コマンドを叩く、やりたいことを実現する。


それをansible言語に翻訳する作業ってすごく無駄な作業だと思う。
しかもローカルでやれることの一部しかできないし。
0273デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:29:40.83ID:oq9fIgmy
>>271
まぁ面倒っちゃ面倒かもな
俺はもうスニペット用意してるからそこまで手間でもないけど
--labelは使ったことないから、知らんけど、まぁどうしてもそうなったら仕方ないからcommnd module使うんじゃね?
0274デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:30:08.38ID:sDdgCD4Q
もちろんansibleにもメリットは有るよ。
今となってはさほど意味がなくなったが冪等性や
複数台のマシンに対して同じ/異なる 設定を送り込むとか

でもさ、コマンド実行部分をYAMLで書けるようにする
そのためのラッパー(モジュール)が大量に必要。
これは失敗だったね。
0277デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:39:10.45ID:sDdgCD4Q
>>273
やっとansible使ったことがありそうな人が来たw

手間なんだよ。モジュールが用意されてないこともあるし、
あったとしても、膨大な設定をオプションを
ansible語へ翻訳しないといけない。

あとリモート側にpythonが必要というのも、設計ミスだろうね。
サーバーにはそれぐらい入れとけよと言いたいのかもしれないけど、
軽くするために必要ないものは入れないという文化も有るしね

さらにdockerはsshすら入ってない。(そもそもそういう使い方をするものじゃない)
でもshは入っている。だからDockerfileはシェルコマンドの頭にRUN付けただけ
みたいな、ほぼシェルスクリプトのやり方でイメージを作成する
0278デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:42:07.34ID:sDdgCD4Q
>>276

> てかその設定への翻訳を無駄な作業って、じゃあ毎回コマンド打つのか??

テキストファイルに、普段あなたが実行しているコマンドを
そのまま羅列していけば、それがそのまま使えるんですよ?

翻訳作業がいらないだけでなく、ansibleで書くよりも短く書けます。
実行するときもスクリプトファイル名を入力するだけです。
0279デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:42:40.90ID:oq9fIgmy
dockerにssh??
dockerのイメージをデプロイする先のsshのことを言ったんだが
てか、何を聞きたいのかあまりよくわからないんだけど質問は何??
0280デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:45:26.64ID:sDdgCD4Q
>>279
sshの話なんて質問してないけど?
何勘違いしてるのさwww

質問は
> どころで普段、端末からdocker使えるか?
> docker build -t tag . とか
> docker run -it debian /bin/bash
> みたいなのそらで打てるか?

これだけだろ

意図は>>271に書いたとおりだ

ansibleを使っている人ならわかる。ansible用に翻訳作業が必要で
モジュールが存在しない場合もあるし、オプションに対応してない場合もある。
そこまで苦労してansibleを使うものではない
0281デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:46:45.43ID:oq9fIgmy
>>278
ああ、シェルスクリプトを保存すれば、ansibleなんて最初からいらんかったんや!ってこと?
シェルスクリプト書くの面倒くさいからansible使うんじゃないの?
なんとなく目先のコスト的には、コマンド直打ち<<<ansibleのplaybook<<<<<シェルスクリプトって感じだが
ワンライナー魔術師とかシェル芸が得意な人はシェルスクリプトのほうがいいんじゃないか?
0282デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:50:20.46ID:oq9fIgmy
>>280
ごめん
>>264が質問と思ってた
シェルスクリプトの救済がどうのこうのということの意味がわからなくて混乱しただけ

回答は>>281
0283デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:51:34.75ID:sDdgCD4Q
思うんだけどansibleって構成管理ツールとかいう名前じゃなくて
リモートコマンドランチャーって呼んだ方が正確なんじゃないだろうか?

リモートマシンでコマンドを実行できます。
コマンドがよくわからない人のために、YAML形式で
コマンドの実行オプションを指定できます。

ほら、正確じゃない?
0284デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:53:08.56ID:oq9fIgmy
ちなみにansibleはやたらモジュールあるけど、
俺が使うのは、さっきあげたdocker_imageとか、他はapt、pip、npmとかくらいだから、
モジュールが対応してないようなことをしない
0285デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:53:25.28ID:sDdgCD4Q
>>281
> シェルスクリプト書くの面倒くさいからansible使うんじゃないの?

それが理解できない。

シェルスクリプト = 普段実行してるコマンドの羅列
なわけで、誰しもシェルスクリプトに書く内容を
すでにシェル上で実行してるはず。
それをコピペするだけだよ。
0286デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:54:37.14ID:oq9fIgmy
>>283
リモートコマンドランチャーで、いいんじゃない?
コマンドがわからんけど、playbookは書けますみたいな人はいないと思うが
0287デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:54:58.86ID:sDdgCD4Q
>>284
> 俺が使うのは、さっきあげたdocker_imageとか、他はapt、pip、npmとかくらいだから、
> モジュールが対応してないようなことをしない

それならばなおのことシェルスクリプトで良いと思うけど
ワンライナー魔術師とかシェル芸なんて使う必要ないし。

シェルスクリプト?
「普段あなたが書いていることを書くだけです」
0288デフォルトの名無しさん
垢版 |
2017/10/22(日) 01:58:28.76ID:oq9fIgmy
>>285
それはちがくね?
ローカルでdockerとかだったら、コンテナが起動済みかどうかしらべてとかするでしょ
それをawkとif文とかを使って書くよりは、state: presentのほうが楽だろ

あと、レビュアーがシェルスクリプトわからんときには、YAMLのほうが読んでもらいやすいかも
どっちでも一緒かもだけど
0289デフォルトの名無しさん
垢版 |
2017/10/22(日) 02:00:51.58ID:sDdgCD4Q
>>286
リモートコマンドランチャーはシェルスクリプトも実行できるから
メインの処理はシェルスクリプトで書くといいだろうね。

そうするとDockerfileでも使えるし、Vagrantでも使える
クラウド上にVMインスタンスを立てるときも
スタートアップスクリプトを設定できて
シェルスクリプトが実行できる。

シェルスクリプトだと応用範囲が広い
0290デフォルトの名無しさん
垢版 |
2017/10/22(日) 02:00:53.35ID:oq9fIgmy
>>287
まぁシェルスクリプトでかけと言われれば書けるよ
それこそ逆翻訳だから面倒ってだけ

それを踏まえて最初の質問に対する答えだが、どっちにもメリットもデメリットもないよ
できることは同じだから好きな方で書けば良い
0291デフォルトの名無しさん
垢版 |
2017/10/22(日) 02:04:02.78ID:oq9fIgmy
>>289
いやメインの処理だけスクリプト化ってのはわけわからんから、なるたけどっちかに寄せたほうがいいよ
君の開発環境がわからないのでなんともいえないが、ansibleのモジュールが対応してない複雑なことをすることが多いなら
技術選択としてansibleを選ばないほうがいい

ansibleだとできることが増えるとかじゃないから、気にしないほうがいいんじゃね?
世の中に流される必要もあるまい
0292デフォルトの名無しさん
垢版 |
2017/10/22(日) 02:15:02.98ID:sDdgCD4Q
>>288
> ローカルでdockerとかだったら、コンテナが起動済みかどうかしらべてとかするでしょ
> それをawkとif文とかを使って書くよりは、state: presentのほうが楽だろ

いや別に? それってstate: presentを誰かが作ってくださってるから
簡単にできますってだけだろ?そこで対応してないのはお手上げだろ。
そういう用意されてるものを使う、自分では作れないっていう精神がだめなんだよ。

awkなんかいらん。docker ps や docker inspect 使えばできるだろ。
そんなコマンド使えませんとか言うのなら話は別だがw

よく使うのであれば、自分で新たなコマンドを作れる。
コンテナが起動済みか調べて起動するコマンドだって作れる
普段使ってる言葉で簡単にね。
0293デフォルトの名無しさん
垢版 |
2017/10/22(日) 02:15:46.33ID:sDdgCD4Q
>>291
> いやメインの処理だけスクリプト化ってのはわけわからんから、なるたけどっちかに寄せたほうがいいよ

だからansibleはいらんなーって話
0294デフォルトの名無しさん
垢版 |
2017/10/22(日) 02:21:35.35ID:oq9fIgmy
お前人にモノ聞く態度と違うぞ
いらんなら使わなきゃいいだけだろ
物議を醸したいのなら質問の体を取るな紛らわしい
夜中に一生懸命説明して損したわ
0295デフォルトの名無しさん
垢版 |
2017/10/22(日) 02:22:31.17ID:sDdgCD4Q
>>291
> ansibleだとできることが増えるとかじゃないから、気にしないほうがいいんじゃね?

逆にできることが減るしねw


1. CLIコマンド(普段使用してる)

2. ansibleモジュール(YAMLからCLIコマンドへの変換レイヤー)

3. YAMLファイル(新たに覚える必要があるもの)


3.で無駄な努力をして、2.の機能不足やバグでトラブルにあって、
やっと普段使用してる1.にたどり着く。ムダ以外の何物でもない
0296デフォルトの名無しさん
垢版 |
2017/10/22(日) 02:23:28.20ID:sDdgCD4Q
>>294
> お前人にモノ聞く態度と違うぞ

そりゃ教える方だからね
教授が学生に質問しているのは
わからないから聞いてるんじゃないですよ?w
0297デフォルトの名無しさん
垢版 |
2017/10/22(日) 02:27:12.80ID:oq9fIgmy
結構スレの前半からいる変わった人なのか
何を教えてるつもりやねん…怖すぎ
2ちゃんで久々に書き込んでつかれた…
0299デフォルトの名無しさん
垢版 |
2017/10/22(日) 04:16:07.34ID:Qk9RzJFk
Dockerはコンフィグの体じゃなくて
スクリプト化して、プロビジョン機能をもたせるべき
言語はGoがいい。
そしてジョブ管理機能をサポートして、Jenkinsとの親和性
を良くするべき。
つまり、コンテナだけじゃなくてプロビジョン、CI, ジョブ制御
全部Docker基盤でサポートできるようなれば超便利。
JenkinsはそのUI窓口を担当する。
0300名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 09:20:56.40ID:HAzBzhoi
>>292
用意されていればそれを使えば簡単、無ければ自分でshellコマンドを書く、でいいんじゃないの?
「そこでshell使うなら最初から全部shellで書けばいいじゃん」てのは極端だと思うが。
0307名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 12:27:30.62ID:HAzBzhoi
>>304
言うことがころころ変わると会話にならんなぁ。

>いや別に? それってstate: presentを誰かが作ってくださってるから
>簡単にできますってだけだろ?そこで対応してないのはお手上げだろ。
>そういう用意されてるものを使う、自分では作れないっていう精神がだめなんだよ。

とりあえず、 ID:sDdgCD4Q はansibleよりshell scriptの方が簡単だと思っているからansibleを使わないわけだな。
で、ansibleを使う人はansibleの方が簡単だと考えているからそれを使うんだと思うよ。
それを「いや違う」と言ってみたところで、その人にとってshell scriptの方が簡単になるわけでもあるまい。
0308名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 12:32:39.03ID:sDdgCD4Q
>>307
文章を途中だけぶち切って
俺の言いたいことを改変するなって

俺が簡単になってないというのは
シェルスクリプトをYAMLに翻訳しても簡単にはならないという話だ。

誰かが作った「機能」はそりゃ簡単になるだろ。
state: present相当の機能をシェルスクリプトで書けばいい。

それをYAMLに翻訳しても簡単にならないって話だ。
0309名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 12:36:44.25ID:sDdgCD4Q
>>307
> とりあえず、 ID:sDdgCD4Q はansibleよりshell scriptの方が簡単だと思っているからansibleを使わないわけだな。

違う。シェルスクリプト語をYAML語に翻訳する作業が"無駄"だと言ってるんだよ。
誰しもシェルでコマンドうってやってる作業なんだから、
それを羅列してシェルスクリプトにしたほうが楽

わざわざYAML語に翻訳して、その結果、モジュールが対応してない機能が
使えなくなってモジュールのバージョンアップやバグに翻弄され、
最終的に対応してない機能はcommand moduleを使って
シェルで打ってるコマンドを書くことになる。

無駄な作業以外のなにものでもないよ
0311名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 13:18:05.46ID:sDdgCD4Q
>>310
ここに書いてあるとおり

274 名前:デフォルトの名無しさん[sage] 投稿日:2017/10/22(日) 01:30:08.38 ID:sDdgCD4Q [5/21]
もちろんansibleにもメリットは有るよ。
今となってはさほど意味がなくなったが冪等性や
複数台のマシンに対して同じ/異なる 設定を送り込むとか

でもさ、コマンド実行部分をYAMLで書けるようにする
そのためのラッパー(モジュール)が大量に必要。
これは失敗だったね。
0315名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 13:42:05.98ID:sDdgCD4Q
>>314
なんで使わない機能を実装しないといけないの?

まあインベントリなんてホスト名をfor文でぐるぐる回すだけのことだけどw
知ってるかい?sshは後ろに実行するコマンドを書けるんだぜ?w
0323名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 15:21:55.05ID:JYWPd5df
違いすぎて何を書けばいいのか
インベントリはデータベースに近い構造で、配列とは全然違う
あえてかんたんに言うなら配列の要素に複数の属性をもたせたものだから、表現力が全く違う
0325名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 15:26:10.75ID:sDdgCD4Q
当たり前だが、
ホスト名の一覧にオプションをつけることなんざ
シェルスクリプトでも簡単にできる。

hostname1 -a 1 -b 2 -c 3
hostname2 -a 11 -b 22 -c 33

というファイル形式でもそれ以外でもどうにでもなる。
0326名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:02:34.59ID:JxzBgWl2
グループ分けもしたい
パラメータは外部ファイルで整理したい
スイッチは読みにくい
ホストが増えてきたら動的にホスト情報をスクリプトで取得したい
静的な情報からスクリプトへの移行も手間無しでスムーズに行いたい
セキュリティ情報を扱うので暗号化もサポートしたい
テンプレートエンジンも欲しい


あげてくとキリがないな
シェルだけでやってるならたいしたものだよ
実際には要求が簡素なだけなんだろうけど
0327名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:25:26.00ID:sDdgCD4Q
> グループ分けもしたい
ファイル、ディレクトリごとに分ければいい

> パラメータは外部ファイルで整理したい
外部ファイルから読み込めばいいだけ

> スイッチは読みにくい
読みやすい形式に変更すれば良い

> ホストが増えてきたら動的にホスト情報をスクリプトで取得したい
標準入出力で別スクリプトの出力結果を使用すればいいだけ

> 静的な情報からスクリプトへの移行も手間無しでスムーズに行いたい
script.sh hostname1 hostname2 hostname3

script.sh $(dynamic.sh)

> セキュリティ情報を扱うので暗号化もサポートしたい
openssl コマンドと openssh のid_rsa で暗号化と復号化
http://takuya-1st.hatenablog.jp/entry/2015/08/12/002349

> テンプレートエンジンも欲しい
envsubstを使ってShellでテンプレートエンジン的なことをする、
http://blue1st-tech.hateblo.jp/entry/2016/07/25/001123

Bashでテンプレートエンジン{{Mustache}}を使ってみる
https://qiita.com/laqiiz/items/baa87183838351e4778c

他ERBでもなんでも好きなのを使え
0330名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:29:07.05ID:JYWPd5df
しかもテンプレートエンジン使うのに他ツール使っちゃだめでしょ?
できることの幅が狭まるし、そのツールの学習コストがあるんだからwww
ぜんぶ自分で書いたシェルでやりなさい!www
0331名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:33:25.41ID:sDdgCD4Q
> しかもテンプレートエンジン使うのに他ツール使っちゃだめでしょ?
シェルスクリプトにこだわるなら普通に
ヒアドキュメントの文字列展開を使えばいいと思うけど?

普段使ってるテンプレートエンジンを使えば良いんやで?
普段やってることをAnsible語に置き換えるのが無駄だって話なんだから
0332名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:35:45.41ID:JxzBgWl2
ってやるとめんどくさいじゃん

ファイル管理ディレクトリ管理を作らなきゃならない
外部ファイル読みこみも書かなきゃいけない
読みやすい形式を考えて書き換えなきゃいけない
標準出力をパースしなきゃいけない
$(...)にいちいち置き換えなきゃいけない
opensshに明に依存しなきゃいけない(シェルだけでやるんじゃなかったの?)
神社以外の新しいテンプレートエンジンに依存しなきゃならない(シェルだけでやるんじゃなかったの?)

シェルだけでできるって話だったのに
いきなり依存するものが出てきて困惑
シェルだけでできてないじゃん
そんなの覚えるのめんどくさいよね
Ansibleを覚えるのと何が違うんだ?
0333名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:36:45.98ID:sDdgCD4Q
> しかもテンプレートエンジン使うのに他ツール使っちゃだめでしょ?
あとこれは考え方が間違ってる。

シェルスクリプトを使うということは、普段使ってるコマンドを使うということ
他のツールというか普段使ってるツールを使うってことだよ。
シェルスクリプトという言語は外部コマンド呼び出しとその連携に特化した言語なんだか
外部コマンドを使わないのは本末転倒

Ansibleという専用で応用範囲が狭いツールに置き換えるのをやめましょうという話
0335名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:41:04.63ID:sDdgCD4Q
>>332
> ファイル管理ディレクトリ管理を作らなきゃならない
ディレクトリ作るコマンドはmkdir、ファイル作るコマンドは
適当なテキストエディタでも使えば終わりでしょw
普段やってないの?

> 外部ファイル読みこみも書かなきゃいけない
. ./file
一行w

> 読みやすい形式を考えて書き換えなきゃいけない
普通にオプションでいいし、環境変数設定のやり方(AAA=123)で十分だろ
ちょっとしたことにブルドーザーを用意しようとするかなw

> 標準出力をパースしなきゃいけない
え? Linux(Unix)っていうのはリダイレクトなどの機能で
ファイルも標準入出力も同じように扱えるんだよ

> $(...)にいちいち置き換えなきゃいけない
3文字のタイピングに何時間かかるのさw

> opensshに明に依存しなきゃいけない(シェルだけでやるんじゃなかったの?)
違いますね。普段シェルでやってることをそのまま使うってことですよ?
言いましたよね。Ansible語に置き換えるのが無駄だと。(何回目だろw)

> 神社以外の新しいテンプレートエンジンに依存しなきゃならない(シェルだけでやるんじゃなかったの?)
普段使ってるテンプレートエンジンをどれでも自由に簡単に使える。
Ansible語に置き換えるのが無駄
0336名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:41:22.04ID:JxzBgWl2
結局ちょっと難しいことしようとするとシェルじゃ太刀打ちできないってことか
シェルで全部やるというかシェルでお気に入りのツールを組み合わせるってだけなのね
んでそれを学習コストなしとみなすいわば屁理屈
少し期待してたけどガッカリ
0337名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:42:13.48ID:sDdgCD4Q
>>332
> シェルだけでできるって話だったのに

普段シェルで叩いてるコマンドをそのまま使えるって話だって
何度も言ってる。

な? シェルはCLIコマンドなんでも使えるんやで?
Ansibleはモジュールで提供されている機能だけや。

YAMLに置き換えて、普段やってることができなくなるんだよ。
無駄以外のなにものでもない
0338名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:44:19.17ID:sDdgCD4Q
>>336
> んでそれを学習コストなしとみなすいわば屁理屈

そりゃそうだろw

シェルは普通誰でも使ってるだろ。
プロビジョン相当のことを、手動(シェルから)でやらないのか?

普段やってることを、単純にYAMLに置き換えるだけだから
無駄な学習コストだよ。それでいてシェルからやってることに比べ
できることが減るんだからな。減るだけじゃない
モジュールの対応してる機能やバグでトラブルが増えてるだけ

何度もその姿見てるわ。無駄なことやってんなーって思ってる。
0341名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:47:41.88ID:sDdgCD4Q
>>339
> ansibleでできることがシェルでできないことはあるけど逆はない

できるできないじゃなくて、YAMLに置き換えるのが
無駄だって話だからね。何度も言うよ?w

ansibleでできるならそれ相当の機能を作るか持ってくればいいので
シェルでできないことは何もないよ。

それにansibleで "できないこと" はshellモジュール使うんでしょ?w
0342名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:48:03.31ID:JYWPd5df
>>338
お前はお前で、ansibleでできることをつらつらshellで書いてることを無駄だと思われてるよwww
mkdirひとつとっても、そのディレクトリの存在確認いちいちするのなんて手でコマンド打つときはlsで目で確認だけど、
スクリプト化したらifディレクティブ書かなきゃいけない
普段やってることをシェルスクリプトに翻訳する作業のコストは完全無視なのが笑える
そのままスクリプトにすりゃ動くだろって動かねーっつのwww
むしろシェルスクリプトの勉強からやり直しなさい
0343名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:50:11.92ID:sDdgCD4Q
> mkdirひとつとっても、そのディレクトリの存在確認いちいちするのなんて手でコマンド打つときはlsで目で確認だけど、

え?

mkdir -p /foo/bar/baz って書けばいいだけじゃん。
なんでいちいち存在確認なんかしてんのwww
0345名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 16:54:00.10ID:sDdgCD4Q
$ mkdir -p /tmp/foo
$ mkdir -p /tmp/foo
$ mkdir -p /tmp/foo
$ mkdir -p /tmp/foo
$ mkdir -p /tmp/foo

何度やってもエラーなんて出ませんねぇw 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0350名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 17:00:13.97ID:sDdgCD4Q
Ansibleに学習時間が取られるだけじゃなく
シェルの学習時間が減るのも問題だよな。

シェルは応用範囲が広いから(逆の言い方をすると)
デプロイだけじゃなく普段の作業でも使える。

つまりシェルに慣れておくと普段の作業も効率化できるわけだ
0351名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 17:02:29.22ID:+55RNfTl
シェルでツールを組み合わせる
作る方からすると簡単だし柔軟性が高いのは事実だけどとにかくメンテナンスしにくい

シェルスクリプト自体がルーズすぎてメンテナンスしにくいってのもあるけど
それ以上に様々なツールを組み合わせること自体がメンテナンス性の悪化を爆発的に加速させる

普段から使ってるツールセットが関係者全員で同じになるってことはまずない
誰かが普段使ってるツールを使って書いたオレオレスクリプトは他の人からすると学習コストが非常に高い厄介な代物でしかない
それぞれが好き勝手に好きなツールを使うことを許してしまうと人数が増えた時に総学習コストは際限なく増えていく
Web系のルーズな人たちはこの辺に無頓着だよね

そうならないために普通の開発現場では使えるツールを限定する
限定するならアレコレ使うよりAnsibleのような目的に沿った全部入りが良い
その方が最終的に学習コストは低くなる
0352名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 17:07:01.08ID:sDdgCD4Q
>>351
> 作る方からすると簡単だし柔軟性が高いのは事実だけどとにかくメンテナンスしにくい

ようやく話が戻ってきたかw

そのメンテナンス作業でやることがDockerを使うことで殆どなくなってきたんだよ。

デプロイで大変なのは実は構成管理ではなくて、アプリのデプロイ
アプリを動かすための環境づくり(言語やライブラリのインストールなど)が大変だった。

でもそれがDockerを使ってDockerイメージに全部入れ込むことで、
あとはDockerコンテナの機動スをする1行(ないし数行)で完結するようになった。

デプロイでやることが大幅に減ったから、もうシェルスクリプトで十分な時代になってるんだよ。
0355名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 17:28:37.91ID:mU/kanzH
>>352
残念だけど、そんな時代はまだ来てない
Dockerを禁止にしてり現場なんていくらでもある
Dockerを使うって発想すらない現場もまだまだ多い
自分のデスクトップが世界標準と考えてしまう視野の狭い若者は少なくないけど
君もそのひとりということだね
今の君のデスクトップが多くの現場で当たり前になる頃には、さらに進んだ技術が君のデスクトップに導入されているんだろう
そりゃ簡単だよな
0360名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 17:34:46.23ID:sDdgCD4Q
>>358
いまDockerの時代が来ているかどうかって
話はしてないのでね

Ansibleはいらない。シェルスクリプトで十分って話。

お前が言ったのは
Ansibleはいらない。シェルスクリプトで十分だけど
俺の会社にはDocker導入されとらんのじゃー!
ってこと

それは技術じゃなくてお前の会社の問題
0362名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 17:42:02.16ID:sDdgCD4Q
ついこの間読んだ記事

Rocro株式会社の導入事例:GAE + GKE をフル活用し、高品質な開発者向け SaaS サービスをソニーグループである Rocro株式会社が少数精鋭で開発・運用
https://cloudplatform-jp.googleblog.com/2017/10/GoogleCloudPlatform-Rocro-GAE-GKE-SaaS.html

GKEっていうのはdockerを使うのが前提となってるんだけど
こういうのどうするのさ?
0363名無しさん@そうだ選挙に行こう! Go to vote!
垢版 |
2017/10/22(日) 17:56:15.83ID:mU/kanzH
>>360
君の言う「シェルで十分」はdockerに依存してるんだろ?
まだまだdockerは普及してないのだから君の言う「シェルで十分」の時代も来てないってこと
使われてる現場もあるってだけで時代が来たっていうなら何も言わんが、時代が来たってそういうニュアンスじゃないと思うぞ

>>361
そう
君の知らない世界が無限に広がってる

>>362
その事例も同じ
使われてる現場もあるってだけ
これからじわじわ増えて来て当たり前のように使われる時代くるんだろう
でもそれは未だ来ていない
0364デフォルトの名無しさん
垢版 |
2017/10/22(日) 20:15:57.81ID:sDdgCD4Q
>>363
> 君の言う「シェルで十分」はdockerに依存してるんだろ?
依存はしてない。dockerを使わないシステムは有る
例えばAmazon RDSやGoogle Cloud SQLというデータベースサーバーとか
こういうのはすでにシステムが用意されてるのでそれを使うだけ

なのですでにAnsibleでデータベースサーバーを作るなんてのはやっていない
シェルどころか何も使わない

> 君の知らない世界が無限に広がってる
COBOLみたいなお仕事でしょ。
知ってるw

> でもそれは未だ来ていない
うちの会社ではすでに自社サーバーがほぼゼロ状態で
サーバーはクラウド化されてるのですでに来ている。

君の知らない世界に俺はいるようだ(笑)
0365デフォルトの名無しさん
垢版 |
2017/10/22(日) 20:19:24.14ID:sDdgCD4Q
これからじわじわ増えて来て当たり前のように使われる時代くるんだろう
そのときに備えてシェルスクリプトは使えるようになるべきだし、
Ansibleは次第に廃止されていく。
それは未来に生きてる俺が証明している
0366デフォルトの名無しさん
垢版 |
2017/10/22(日) 20:38:19.65ID:1Ll1E+vW
てかansibleの到来でシェルスクリプトが駆逐され、クラウドのAPI充実によってansibleが駆逐されていく感じだろ
俺からすればどっちも糞の山だわ
0367デフォルトの名無しさん
垢版 |
2017/10/22(日) 20:43:45.97ID:sDdgCD4Q
それはないんだわ。なぜならansibleはPythonがリモートに
インストールされていないといけないから。

通常コンテナには必要最小限のものしか入れないので
Python用コンテナでない限りPythonは入っていない。
必然的にシェルスクリプトしか使えない。

またdockerイメージの特徴はローカルでも動かせるという所だから
クラウドのAPIなんてのは意味がない。
0368デフォルトの名無しさん
垢版 |
2017/10/22(日) 20:51:08.10ID:GMFIfZ60
>>367
うちはサーバーは全部ubuntuだからそこらへんはクリアしてんのかな?
てかpython入ってないサーバーなんて今時あんの?

てかDockerだのシェルだのansibleだのインフラ屋も大変だね
うちは、ビジネスサイドと開発選択して、ユニットテスト書いてコード書いて、pushすればステージ環境に勝手にデプロイされて、
POがステージ環境さわってマージされたら本番に勝手にデプロイされてって感じ
こっちからしたら、それができれば何使ってくれても構わんわ

インフラ屋って地味なイメージあるけど、やっぱ宗教論争があるんだな笑
0369デフォルトの名無しさん
垢版 |
2017/10/22(日) 20:54:43.66ID:sDdgCD4Q
あとAnsibleを死滅させる原因の1つにKubernetesがある。
Kubernetesが事実上の標準の座を手に入れるまでは
Ansibleを使ってオーケストレーションを行おうという動きがあった。

Kubernetesを使うことで簡単にDockerコンテナを実行できるわけだけど、
その方法としてコマンドラインのkubectlとREST APIがある。

Ansibleはまたコマンドランチャーとしての立場として
せっせとラッパーモジュールの開発を行っている
0371デフォルトの名無しさん
垢版 |
2017/10/22(日) 21:00:16.24ID:sDdgCD4Q
>>368
> てかDockerだのシェルだのansibleだのインフラ屋も大変だね

勘違いしている人も多いが、Dockerはインフラ屋の道具じゃない。
アプリ開発側が、アプリのイメージ(=Dockerイメージ)を作って
インフラ屋に「これ起動して」って渡すもの

インフラ屋にいちいち動作するサーバー構成とか
必要な言語、バージョン、ミドルウェア等伝えるの面倒でしょ?
0372デフォルトの名無しさん
垢版 |
2017/10/23(月) 00:50:40.93ID:JrZmYN5x
sDdgCD4Q
シェルスクリプトは普通に面倒だよ
まず「コマンドベース」なのが可読性が汚くなる。
クォーテーション、オプション、セミコロン、各種コマンド展開
パイプ、リダイレクト記号
さらに「オプション」っていうのはテストコマンド中のオプション
とか普通のコマンドのオプションとか1文字だけで意味を理解するには
「シェルの仕様を暗記」していることが前提になる。
もちろん「シェルを散々やっている人」からすればそんなの身について
当たり前、って思うかもしれないけど、Ruby, Python, YAMLなんかに
比べれば「意味の通りやすさ」が段違い。
自分では当たり前のように書いてるシェルのコードが別の人から見たら
「わけわかんない秘伝のタレ」にしか見えないかもしれない、って
考えたことある?
DockerとかAnsibleみたいなツールは何も「既存で熟練した技術者」
のためにあるわけじゃないんだよ。
難解なコードは技術者が自分の立場を守るための参入障壁でしかない。
古参技術者のATフィールドみたいなもんだよ、そんなものはOSSによって
容易に破られる時代ってこと。
0373デフォルトの名無しさん
垢版 |
2017/10/23(月) 01:04:48.03ID:JrZmYN5x
あとあれだ、Docker要らない、シェルで十分って言ってる
やつは「コンテナ化」について全く言及してないだろ。
シェルで制御できるのはせいぜい「プロセス」「ジョブ」単位。
Dockerで制御できる「コンテナ」は「沢山のプロセス」をカプセル化
した「マシン」と「プロセス」の粒度の中間にある「サーバ(=コンテナ)」
という粒度が必要になってきたからDockerができたんだよ。
あとGitリポジトリと同じで「過去の状態に復帰できる」
コンテナの設定を「1ファイルとして外部に外出しできる」のも
シェルの守備範囲外。
シェルはどうやっても依存関係が生じてなかなか「1ファイル」とはいかない
だろ?
0374デフォルトの名無しさん
垢版 |
2017/10/23(月) 01:07:56.87ID:IfXz4gcp
> まず「コマンドベース」なのが可読性が汚くなる。
理由は?

> クォーテーション、オプション、セミコロン、各種コマンド展開
> パイプ、リダイレクト記号
何が問題なのか分からん。やりたいことが実現できれば十分だろ

> さらに「オプション」っていうのはテストコマンド中のオプション
> とか普通のコマンドのオプションとか1文字だけで意味を理解するには
> 「シェルの仕様を暗記」していることが前提になる。
シェルの仕様じゃなくて、普段自分で打ってるコマンドのオプションな。
あまり使わないものは俺はlong optionで書くようにしてるよ?一文字にこだわる必要はない。

> もちろん「シェルを散々やっている人」からすればそんなの身について
> 当たり前、って思うかもしれないけど、Ruby, Python, YAMLなんかに
> 比べれば「意味の通りやすさ」が段違い。
YAMLは形式、そこで使うオプションは結局覚えなきゃいけない。その分手間がかかる。

ってか本気のプログラミングをしないんだから、SQLでプログラムするのは
大変って言ってるようなもんだよ。シェルスクリプトは汎用言語じゃなくて
DSLに近いものなんだから、限られた用途で最高のパフォーマンスを出せばそれで十分

> 自分では当たり前のように書いてるシェルのコードが別の人から見たら
> 「わけわかんない秘伝のタレ」にしか見えないかもしれない、って
> 考えたことある?
それはansibleも一緒。使い込んでいくと結局機能が足りなくて自分でモジュールとか作って
自分で作ったものは冪等性が実現できてなくて〜みたいになって苦しんでる姿を見てる。

> DockerとかAnsibleみたいなツールは何も「既存で熟練した技術者」
> のためにあるわけじゃないんだよ。
シェルスクリプトも「既存で熟練した技術者」のためにあるわけじゃないんだよ。
普段シェルで使ってるコマンドそのまま使えるから知識が応用できる
0375デフォルトの名無しさん
垢版 |
2017/10/23(月) 01:18:21.36ID:IfXz4gcp
>>373
> という粒度が必要になってきたからDockerができたんだよ。
ぜんぜん違うわw お前Docker分かってないじゃないかw

https://www.docker.com/what-container
ここよめ 面倒だからGoogleで日本語に翻訳したよ

> 開発、出荷、展開のための標準化されたユニットにソフトウェアをパッケージ化する
> コンテナイメージは、実行に必要なすべてのもの(コード、ランタイム、システムツール、
> システムライブラリ、設定)を含む軽量でスタンドアロンの実行可能なパッケージです。

「軽量でスタンドアロンの実行可能なパッケージです。」

ソースコードをコンパイルしてビルドすしたビルド生成物にさらにコード、ランタイム、
システムツール、システムライブラリ、設定をパッケージ化したものだ

複数のプロセスをパッケージ化したものじゃない。
静的リンクをさらに発展させてシステムライブラリまでをもリンクしたようなものだ。

> あとGitリポジトリと同じで「過去の状態に復帰できる」
いや?過去の状態に復帰するために使うことはまれ。
Dockerfileが同じでも全く同じイメージは作れない。
その時点で最新のディストリのパッケージが使われるから。
Makefileと同じで手順が残っていて1コマンド(ないし数コマンド)でビルドできるのが特徴

> コンテナの設定を「1ファイルとして外部に外出しできる」のも
> シェルの守備範囲外。
当たり前だろ・・・コンテナの設定を外出できるのはコンテナの機能だろ
なんでシェルの話とコンテナの話をごっちゃにしてるんだよw

> シェルはどうやっても依存関係が生じてなかなか「1ファイル」とはいかない
シェルが1ファイルとか誰も言ってないんだが?
0376デフォルトの名無しさん
垢版 |
2017/10/23(月) 01:28:14.42ID:IfXz4gcp
> した「マシン」と「プロセス」の粒度の中間にある「サーバ(=コンテナ)」

って言ってる時点で、

システムコンテナ(OpenVZなど) と アプリケーションコンテナ(Dockerなど)の
違いが分かってないとわかるんだよな。
コンテナ上で複数のプロセスを動かすとかさぁw

http://tokyodebian.alioth.debian.org/html/debianmeetingresume200912se8.html

> コンテナ型の仮想化技術というと有名なのは、 Solaris Containers や FreeBSD jail がありますが、
> Linux では Linux-VServer, OpenVZ*7 な どがあります。 いずれも既に使ったことがある方が多いのではないのでしょうか。
> lxc で提供されるサービスは、 大きく分類してシステムコンテナと、 アプリケーションコンテナの
> 2 つがあります。 前者は、 いわゆる OS まるごとの仮想化です。 init から起動して、 仮想 OS の空間を提供します。
> 後者は、 chroot によるアプリ ケーションの分離に近いです。
> 単一アプリケーションを分離するだけなので、 とても軽くシンプルなのが特徴 です。
0377デフォルトの名無しさん
垢版 |
2017/10/23(月) 01:32:54.85ID:JrZmYN5x
>>375
成果物として生成したものから起動する
コンテナは「仮想マシン」みたいなものだから、
そのなかで稼働するプロセスをカプセル化しているって言う
表現は間違っていない。
視野がせまいのはドキュメントの表面的な字面だけを捉えている
お前の方。
使うのが稀だとしても「過去の状態に復帰できる」が担保されているのと
上手く行かないかもしれないというのでは差が大きい。
それに差分抽出、差分吸収もできる。
「1ファイル」であるということは移植性が高いということ。
シェルは内部に多数の外部スクリプト、コマンドなどを読み込むから
1ファイルではなかなか他のマシンに移植しにくい。
因みにシェルが役に立たないとは言っていない。
だけどDockerやプロビジョンツールを否定するのは無理がある。
0378デフォルトの名無しさん
垢版 |
2017/10/23(月) 02:24:34.18ID:IfXz4gcp
>>377
> コンテナは「仮想マシン」みたいなものだから、

だからそれが間違いだってーのw

仮想マシンって何かわかってるか?(物理)マシン、ハードウェアを
ソフトウェアで実装することで仮想的なハードウェアを作り出すものだよ。

コンテナはハードウェアをソフトウェアで実現している
わけじゃないので仮想マシンとは全く違うもの

(アプリケーション)コンテナがやってる仮想化っていうのは
カーネル部分だ。コンテナごとにカーネル部分を仮想的に作り出すことで
アプリケーションごとに独立したユーザーランドを提供することができる
アプリケーション専用に独立した実行環境を持てるんだよ。

同じ「仮想」という言葉が入っているから勘違いしてるのだろうが
コンテナは仮想マシンとは全く違う。「仮想」ではあるが「マシン」じゃない。
仮想メモリと仮想マシンに両方共「仮想」が入っているから
同じようなものだと勘違いしているのと同じレベルの間違いをしてる。

> 表現は間違っていない。
間違っている所は仮想マシンみたいなものと言う所と
複数のプロセスをまとめるというものだ。
やろうと思えばできなくはないが、アプリケーションコンテナであるDockerは
複数のプロセスをまとめたりしない。複数のプロセスを動かすのは
物理・仮想マシンの役目だ。

物理・仮想マシンで複数のプロセスを起動する
Dockerコンテナ1つはその複数のプロセスの1つにすぎない
0379デフォルトの名無しさん
垢版 |
2017/10/23(月) 02:33:28.78ID:IfXz4gcp
>>377
> 使うのが稀だとしても「過去の状態に復帰できる」が担保されているのと
担保されていない。イメージを消してしまったら二度と同じものは作れない。

> 「1ファイル」であるということは移植性が高いということ。
俺は「1ファイル」なんかにこだわってないが、
なんでお前はそれにこだわってるんだ?

別に「1ファイル」であることは移植性は高くない。
何を根拠にそんなこと言ってるんだろうか?
移植性がないC言語のソースコードを1ファイルにすると
移植性が高くなるとでも? 意味がわからない。

> シェルは内部に多数の外部スクリプト、コマンドなどを読み込むから
> 1ファイルではなかなか他のマシンに移植しにくい。

移植しにくいのは他の「マシン」ではなくて他のOS(ディストリ)
コンテナはその部分を仮想化して、カーネル以外の部分を
全部アプリケーションにくっつけてしまう。

結局のところ別の実行環境に移植するっていうのは理論上は
互換性があっても完璧とはいえないんだよ。
だからコンテナを使うことで、カーネル以外の部分に同じものを使うことで
移植そのものをなくしてしまった。

DockerコンテナはLinuxカーネルでしか動かないって知ってるか?
使うOSは全部Linuxだ。だから移植しなくて良いんだよ。

なおAnsible使っても移植作業は大変だ。DebianとCentOSでapt-get、yum違いも有るし
パッケージ名の違いも有る。パッケージの中に入っているものも違う。それぞれ用意しないといけない。
Dockerイメージににはカーネルを除いた「Debian」部分も含まれるから
CentOSで、Debianベースのイメージが動かせる。移植作業が不要とはこういうこと
0380デフォルトの名無しさん
垢版 |
2017/10/23(月) 02:34:50.00ID:JrZmYN5x
>>378
お前は国語が理解できないんだと思う。
「犬は狼みたいなもんだ」といったら
それの違いを生息地帯とか餌の内容とかごちゃごちゃ並べて
批判するタイプ。
つまり、抽象表現とかメタファーを一切受け入れられない。
その証拠に、使っている言葉がどっかのドキュメントに書いてある
文言そのまんまコピってきたような文章書いてるな。
学力テストでは高得点取れそうだが、物事を設計するのは苦手そう
違うかい?
0381デフォルトの名無しさん
垢版 |
2017/10/23(月) 02:38:08.54ID:IfXz4gcp
>>380
何が言いたいん?言葉遊び?

お前は「猫」と「海猫」は同じようなもんと
言ってるんだが?
0382デフォルトの名無しさん
垢版 |
2017/10/23(月) 02:44:12.55ID:IfXz4gcp
っていうか言い返したいのはわかるが、
レスの内容に言及しないのは何なんだろうなw
0383デフォルトの名無しさん
垢版 |
2017/10/23(月) 02:46:41.07ID:IfXz4gcp
> 違うかい?

あぁ、そうだ、これ、関係ないくだらない質問ををしてそれに答えなかったら、
否定しなかったから認めたんだ。おまえは認めたんだー。わーって
言うための布石だこれ。見たこと有るw

くだらない質問だけど違うって言っておくよ。おまえを黙らせるために。
でも関係ない話だからそれ以外何も言うつもりはないよ。

このスレに関係ある話をしような?
0384デフォルトの名無しさん
垢版 |
2017/10/24(火) 00:32:13.24ID:jO+jDbIG
...お、おう。
久々に来たら面白い事になってんな。
0385デフォルトの名無しさん
垢版 |
2017/10/24(火) 03:30:56.57ID:DfsEXCLh
Docker、2016、オライリー

Chef実践入門 - コードによるインフラ構成の自動化、2014
0386デフォルトの名無しさん
垢版 |
2017/10/24(火) 23:00:17.34ID:zYnBGUyD
殆ど同じ内容のDockerfileなんだけどちょっとだけ変えたい場合ってどう書けばいいの?

FROM me/hoge:debug
COPY . /hoge
WORKDIR /hoge
RUN ./setup.sh --debug
ENTRYPOINT ["run.sh"]

FROM me/hoge:release
COPY . /hoge
WORKDIR /hoge
RUN ./setup.sh
ENTRYPOINT ["run.sh"]

似たようなのが沢山ある
0389デフォルトの名無しさん
垢版 |
2017/10/28(土) 09:01:01.81ID:rZWSN5Vz
異なるimageを1つにマージしたい
なんていうか多重継承みたいな事をしたい
dotnetとpythonから派生して両方に依存したアプリを乗っけてビルドしたい的な要件
どちらかをfromにしてもう片方をdockerfileに書けば済む話なんだけどせっかく公式でdocker最適化メンテナンスしてくれてんだから両方ともそっち使いたいよね
0390デフォルトの名無しさん
垢版 |
2017/10/28(土) 14:35:33.70ID:bXFe772l
>>389
あんたも典型的な使い方を間違えてる。
Dockerはアプリケーションコンテナであって
システムコンテナじゃない

システムコンテナじゃないから「アプリを乗っける」なんて
考え方にはならないししてはいけない。

正しくは「アプリケーションをビルドする」だ。
Docker使ってアプリを作るんだよ。
0391デフォルトの名無しさん
垢版 |
2017/10/28(土) 16:01:54.61ID:rZWSN5Vz
>>390
言葉の定義の問題でしょう
ここではwebアプリのリソースファイル一式をアプリと呼んでるだけ
というか質問に答えれないならしゃしゃりでないで黙っててください
0393デフォルトの名無しさん
垢版 |
2017/10/29(日) 01:55:08.12ID:9lQAHngl
うんことうんこが激しくうんこを撒き散らしてるが、
自分一人で仕事するのであれば好きにしたらいい
チームでやるならメンバーのスキルセット考慮して選択するだろ
原理主義的にどっちがいいとか言ってる奴等はだいたい職場で浮くよな
0395デフォルトの名無しさん
垢版 |
2017/11/06(月) 06:20:20.30ID:oNlJoXOO
すみません、教えて下さい
virtualbox+ubuntuで仮装ホストを立てる場合とdocker toolboxの違いってどんな感じなんでしょうか?
0396デフォルトの名無しさん
垢版 |
2017/11/07(火) 00:11:44.79ID:DNpGFSnP
>>395
docker toolboxの場合dockerが提供するべき機能を
ちゃんと提供している(努力している)って所かな
具体的に言うと起動したコンテナにlocalhostでつなげることができるとか
ボリューム機能が使えるという所。他にも有ると思うけど

コンテナの中は実行環境が隔離されてはいるけど、コンテナ自体は
ホストOS上で直接動かしているように見せられるのが特徴なわけ
つまりWindows上でDockerコンテナを動かしたとき、
Windows上のディレクトリをDockerコンテナは読み書きでき
Dockerコンテナでウェブアプリを起動した時、localhost:8080とかで接続できる

virtualbox+ubuntuだとWindowsがホストだとしてゲストマシンとして別のマシンが
起動するような感じ、ディレクトリとか共有設定していなければ別扱いだし
別のIPアドレスが割り当てられる、ポートフォワーディングの設定をしないとlocalhostで見れない。
Windowsとは別に用意されたubuntuマシンに入ってからubuntuマシン上でdockerを使うのに比べて
docker toolboxだとまるでWindows上で直接Dockerを動かしているよう見える。

まああとは考え方の違いがあるけどね。Windowsは使いづらいから
Windowsを捨てたつもりで、でほぼすべてを仮想マシンの中で過ごしたいっていうのなら
virtualbox+ubuntuでも良いと思う。でも今はWSLも出来たし、Windows上で開発
テキストエディタもWindows用atom。作ったウェブアプリをWindows用のブラウザで確認したい。
みたいな使い方をするのならdocker toolboxならそれができるように整備されているってわけ
0398デフォルトの名無しさん
垢版 |
2017/11/07(火) 10:49:12.91ID:uepCx6fG
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
config.vm.network "forwarded_port", guest: 80, host: 10080 # HTTP
config.vm.network "forwarded_port", guest: 443, host: 10443 # HTTPS
end

Vagrant, Chef では、Ruby の文法で、設定ファイルを書く

誰も、Vagrant の作者、Mitchell Hashimoto (HashiCorp)を、
避けて通ることはできない、と言われている

Docker、2016、オライリー
実践 Vagrant、Mitchell Hashimoto、2014、オライリー
Chef実践入門 - コードによるインフラ構成の自動化、2014
0400デフォルトの名無しさん
垢版 |
2017/11/08(水) 22:22:13.17ID:9nb3Ik6J
>>396
ありがとうございます
ホストのwindows環境を活かしたいならsocker toolboxがいいんですね
勉強になりました
0401デフォルトの名無しさん
垢版 |
2017/11/11(土) 12:30:00.77ID:AwGKm55U
日経Linux 11月号
WSL 特集

Docker の記事もある

Ubuntu 側では、Dockerデーモンが動かないため、
Windows 側の、VirtualBox に、Vagrant で、CoreOS を入れて、
その中に、Dockerデーモンをインストール

Ubuntu側から、Dockerコマンドで使う

付録は、サーバーがゼロから分かる本、100ページ。
サーバーでできること、77

付録DVD は、
Ubuntu 17.04 日本語 Remix (64 ビット版)
Ubuntu Server 17.04 (64 & 32 ビット版)
CentOS 7.3 LiveGNOME (64 ビット版)
0404デフォルトの名無しさん
垢版 |
2017/11/18(土) 20:40:24.58ID:DGbmO77I
暇な人おしえてください

物理マシンで作ったスクリプトファイルを仮想環境で実行したいんだけど
どうやってファイルを仮想ディレクトリにもっていけばいいの?
根本的にわかってないっす・・・
0406デフォルトの名無しさん
垢版 |
2017/11/21(火) 22:02:56.50ID:Dg+h+BIQ
最近vagrantを始めたのですが
このソフトがやっていることってもしかして
virtualboxのCLIを叩いてるだけでは?
0408デフォルトの名無しさん
垢版 |
2017/11/22(水) 01:35:34.65ID:8atlH8j3
ありがとうございます
やはりそうなんですね
そうなると、「vagrantでないと出来ないこと」は何なのかが気になります
プロビジョニング的なことでしょうか?
プロビジョニングは、
自動的にログインしてコマンドを叩くことで実現してるのでしょうか?
これはあらためて考えるとvirtualboxのCLIで出来ることを超えてる感じがします
0409デフォルトの名無しさん
垢版 |
2017/11/22(水) 02:08:02.88ID:jSD3lLhL
時間さえあって自分で作るならアセンブラでできないことは何もない

○○でないとできないこと="時間をかけずに"△△をすること
すべてそう。時間をかけないという問題を解決してる。

> これはあらためて考えるとvirtualboxのCLIで出来ることを超えてる感じがします
virtualboxのvboxmanageコマンドでできる
0411デフォルトの名無しさん
垢版 |
2017/11/22(水) 23:58:07.56ID:jSD3lLhL
自転車で行けるなら、歩いていけないことはない
というのと一緒

可能・不可能の話にしてしまうと大事な点が見えなくなる
同じことをするにもコスト・時間が少ないほうが良いだろう?
それはすごく重要な事だよ
0413sage
垢版 |
2017/11/23(木) 10:23:34.07ID:tzs9JkH9
privilegedモードとdocker.sock共有だとどっちか危険ですか?
0414デフォルトの名無しさん
垢版 |
2017/12/07(木) 12:39:47.34ID:NfkoL/Di
docker run したときのパラメータ変えたかったら
今のコンテナからイメージつくるか、もとのイメージから、コンテナ作り直すしかないの?
0415デフォルトの名無しさん
垢版 |
2017/12/07(木) 21:24:18.91ID:kyxQutt+
>>414
dockerイメージ = exeファイル
dockerコンテナ = exeファイルを実行して作ったプロセス
docker runのパラメータ = exeファイル起動時の引数

と考えればいいよ

起動時の引数を変えたいって変な話だよね
プロセスの状態を外部から変えたいならば、ファイルやネットワークやシグナル
なんかで、プロセスにメッセージを送ることになるでしょう?
0417デフォルトの名無しさん
垢版 |
2017/12/07(木) 21:46:47.50ID:kyxQutt+
>>416
今のコンテナからイメージ作らないで
もしくは
もとのイメージからコンテナ作り直さないで

変えられるって言いたい?
0418デフォルトの名無しさん
垢版 |
2017/12/07(木) 21:47:04.44ID:NfkoL/Di
>>415
1回exe起動したらずっとそのままの状態で起動しないとだめってのもおかしな話だよね
なんのために引数取れるようになってるのか考えれば、パラメータ変えて再実行なんてあり得る話
プロセスが継続してる必要はないけど、たとえばポート変えたいとかいくらでもあるだろ

コンテナが単純なexeと違うのは、内部に状態持って永続化してたりするから
まあ、コンテナ内部に永続化させたのが失敗だって話なんだろうけど
0419デフォルトの名無しさん
垢版 |
2017/12/07(木) 23:08:10.01ID:kyxQutt+
>>418
だから俺は最初から、exeファイルの引数を変えて
再起動するのが普通だって言ってるだろ

再起動したくないって言ってるのは>>414
俺はそれに対して再起動しないで変えるための案を書いてる


後からやってきたお前のレスは、>>414が再起動したくないと言ってるのに対して
(再起動しないで)entrypointでオプション変えられるって言ってることになってるんだよ
だから俺は、それできんの?ってきてるんだが

ちゃんと文章読め
0420デフォルトの名無しさん
垢版 |
2017/12/07(木) 23:09:37.72ID:kyxQutt+
>>418
> コンテナが単純なexeと違うのは、内部に状態持って永続化してたりするから

単純なexeだってビルドする時にソースコードに書かれた
定数やデータやリソースファイルなど、内部に状態を持って永続化するが?
0421デフォルトの名無しさん
垢版 |
2017/12/08(金) 03:08:05.72ID:bFLhaAeC
>>420
実行ファイルに埋め込まれた定数やリソースを永続化という用法が一般的かどうかは知らんが
状態のまえに、実行時に変化するってつけといて
あるいは状態もって永続化じゃなくて、データファイルでもいいぞ
0422デフォルトの名無しさん
垢版 |
2017/12/08(金) 03:15:52.99ID:cpGshdOM
プロセスだって実行時にメモリ書き換えるだろ
実行時に状態変化してるんだよ
0423デフォルトの名無しさん
垢版 |
2017/12/08(金) 05:39:25.87ID:bFLhaAeC
メモリ書き換えるのは普通永続化されてるとは言わんわ
わざと曲解してるのかね
0424デフォルトの名無しさん
垢版 |
2017/12/08(金) 09:52:46.11ID:cpGshdOM
>>423
だからdockerコンテナも同じ
基本的にコンテナは終了した後に再利用することはしない
消すのだから永続化していると考えてはいけないんだよ
0427デフォルトの名無しさん
垢版 |
2017/12/08(金) 17:43:23.33ID:bFLhaAeC
>>424
だからコンテナ内部に永続化させたのが失敗だって話なんだろうって

ただ、コンテナは中断しても良いけど終了させたいわけでも消したいわけでもないぞ
たとえば 現在のコンテナの内容のまま、  -p 80:80 から -p 8080:80 にしたいってときにどうするんだって話
0428デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:44:10.36ID:cpGshdOM
>>425
しない。それは使い方が間違っている。
データベースに限らないがまずアプリとデータは分離させる
アプリはコンテナ、データはボリュームに保存する。
そしてコンテナは消してもデータは残るように作るのが通常のやり方
0429デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:51:28.74ID:cpGshdOM
>>427
> たとえば 現在のコンテナの内容のまま、  -p 80:80 から -p 8080:80 にしたいってときにどうするんだって話

データはコンテナの中ではなくボリュームに保存する。
だからコンテナは消しても、データはそのまま。

アプリを一旦停止して再起動しても、データはファイルに保存してるだろ。
アプリを止める = コンテナを止める
データをファイルに保存 = データをボリュームに保存
こう変わっただけ

これこそが「仮想化」なんだよ。
もし仮にアプリが決め打ちの絶対パスで/var/hogeにデータを書き込むという仕様だとしても、
dockerコンテナに閉じ込めておけば、アプリが/var/hogeに書き込んだとしても
ボリュームを使うことでコンテナの外では好きな場所に変更することができる
仮想メモリのように、アプリから見た書き込む場所とは別の物理的な場所にリマップできる

アプリや一連のシステムを一つのコンテナにパッケージングし
そのコンテナ=アプリのようにみると、docker runのオプションで自由にポート番号
や書き込みディレクトリを変更できるカスタムアプリが出来上がる。
0430デフォルトの名無しさん
垢版 |
2017/12/08(金) 22:29:34.36ID:3V9S/A/h
ドッカスはネットワーキングがクソ
ホストのリゾルバぐらい参照せえや
なに勝手にグーグルにつないどんねん
0431デフォルトの名無しさん
垢版 |
2017/12/10(日) 11:56:05.50ID:fCk6aJzv
外部ポート5000番で公開してるregistryにloginしようとすると
フロントのnginxが400 bad request返してくるんだがなんとかならん?

おそらく
 docker loginがポート5000だからtlsじゃねーだろって判断する
 →dockerがhttpでregistryにつなぎに行く
 →nginxがhttpsじゃないので400返す
って流れになってるんだと思う
試しにregistryの外部ポートを443に変えてloginするとちゃんと成功する

docker loginで強制的にtls使うオプションとかあれば使うんだけど
docker login --helpしてもそれらしいオプションはなかった

443で公開するしかないのか
insecure-registryは使いたくないし
0432デフォルトの名無しさん
垢版 |
2017/12/12(火) 23:03:27.06ID:YAElnGhd
ものすごく基本的なことかもしれませんが教えて下さい。
1つの物理マシンに、ubuntuをインストールし、色々な実験家用をdockerコンテナでインストールし、
そのマシンに複数ユーザが接続してdockerコンテナを使用する予定です。
同じコンテナを複数ユーザが使用しても大丈夫でしょうか。
それとも、元々マルチユーザのOSなのでこのような使い方こそが向いているのでしょうか。
0434デフォルトの名無しさん
垢版 |
2017/12/13(水) 08:51:35.45ID:bj6sPJM2
>>432
実験や学習に使うならdockerじゃなくてvagrantの方がいいかな
サーバー共有する必要はないと思うのでローカルにインストールさせれば?
0435デフォルトの名無しさん
垢版 |
2017/12/13(水) 20:23:50.84ID:4MfUhrQZ
CentOS7にDocker入れて、
Hass.ioというホームアシスタントのコンテナHass.ioを走らせたのですが
クライアントPCから接続できなくて困っています。
DockerとCentOSの間で外部への橋渡し設定が必要なのか
CentOSのsamba設定がまずいのか
どちらかと考えています。
前者の原因はあるでしょうか?
Dockerをアプリみたいに考えていいなら、前者は考えなくていいと思っています。

本人はDocker初心者でlinuxは数年ぶりに触っています。
0436デフォルトの名無しさん
垢版 |
2017/12/13(水) 20:27:41.39ID:PKyEd910
【自然破壊】何百種類ものコンピューターは必要ない
http://lavender.5ch.net/test/read.cgi/kaden/1510387401/l50
世界教師マイトLーヤ「大暴落は日本からスタート」
http://rio2016.5ch.net/test/read.cgi/2chse/1512813686/l50

【テレパシー】世界教師マイトLーヤの演説『大宣言』は、14歳以上、3つの体験、14名の覚者を紹介
https://rosie.5ch.net/test/read.cgi/liveplus/1513126180/l50
【テレパシー】元国連職員「いきなり声が…『聞こえないフリ、分からぬフリをするな、照れをなくせ』」
http://rosie.5ch.net/test/read.cgi/liveplus/1513067436/l50
0437デフォルトの名無しさん
垢版 |
2017/12/13(水) 23:14:09.56ID:dQY+CYRc
>>435
Hass.ioなんてのはしらんのでその説明と構成を言ってくれないと答えられん。
そのHass.ioはサーバーなのかHTTPかなにかで接続するのか、
samba は直接CentOS上で動かしているのか?
それともHass.ioのコンテナに含まれてるのか、別のコンテナなのか
Hass.ioとsambaはどう連携するのか
マシン構成はクライアントPCとサーバーPCの二台なのか
それともクライアントPCとHass.io用PCとsamba用PCの三台なのか
0438デフォルトの名無しさん
垢版 |
2017/12/13(水) 23:17:43.29ID:dQY+CYRc
あとDocke(コンテナ)をアプリみたいに考えて良いのはそのとおりだが
何かしらのサービスを提供するアプリは、サービスを提供するための
ポート番号を設定するだろ?(デフォルトで指定されてることも多いが)
Dockerコンテナ=アプリはそのポート番号を明示的に指定しなければいけない
0439435
垢版 |
2017/12/14(木) 00:27:35.30ID:yKgGSsNL
>>437
Hass.ioはhttpの8123ポートへアクセスするとブラウザベースのサービスを提供するもの。
Hass.ioはcentosのdocker上で動かしている。
sambaはcentos上で動かしている。
マシン構成はクライアントPCとサーバーPCのcentosの計2台。
docker0とHass.ioは172.のローカルIPが振られていて、サーバーPCは192.のローカルIPがDHCPで振られている。
サーバーPCはワークグループに表示されているが、ゲストアクセス出来ない。

すみません。分かることを書いてみました。
本人はサーバー立ち上げ経験ありません。
0440デフォルトの名無しさん
垢版 |
2017/12/14(木) 01:14:17.99ID:bGPtLfUR
>>432-434
漏れの推測だけど、

そのOS に、Docker イメージが1つだけで済む。
各ユーザーは、そのイメージからの差分だけを持てば良いから、効率的
0442435
垢版 |
2017/12/14(木) 09:19:19.05ID:asDNyaxD
>>441
あ、公式ホームページ読むと
Hass.ioでsambaとSSHが使えると書いてあるのかな。
確認してみます。
0443デフォルトの名無しさん
垢版 |
2017/12/14(木) 23:12:32.34ID:COokNIga
1つのアプリケーションで複数サービス起動したい場合のベストプラクティス教えて
0444デフォルトの名無しさん
垢版 |
2017/12/15(金) 00:56:05.83ID:L7gVN0RS
バッドプラクティスしたい場合の
ベストプラクティスを教えてと言われても・・・
0446デフォルトの名無しさん
垢版 |
2017/12/19(火) 20:09:30.02ID:ayXhJHgO
ジェンキンスでイメージをレジストリにpushするところまで出来たのだけど
pushしたイメージを運用サーバーにpull & restartしてもらうにはどうすればいいの?ssh?
0447デフォルトの名無しさん
垢版 |
2017/12/23(土) 21:56:21.95ID:AW7swrGi
人いねえな
日本じゃ仮想環境はまだまだマイナーなのか
大企業でもでっかい社内サーバーにあれこれ同居させてなんてことが未だにあるし
そういう文化なのかなぁ
0448デフォルトの名無しさん
垢版 |
2017/12/30(土) 21:53:24.25ID:DzO+KqCk
Dockerのコンテナで開発環境として
いろんなサーバつくる上での「共通素材」が
そろったコンテナ配布していないかな。
プログラミングが学習しにくい内容として
例えばDBを学びたときに「DB内に予め素材データがたくさん詰まっていたら」
それをもとに勉強や試しに動かしやすくなる。
JavaScriptを試したいときにい予めサンプル画像や文言、
試し切り用のHTML構造がたくさん詰まっていてくれたら検証しやすくなる。
テストコードがあらかじめたくさんあったらそれに合わすような
プログラムが作りやすくなる。
開発環境は素材付きで配布するっていいアイデアじゃないか?
0452デフォルトの名無しさん
垢版 |
2018/01/03(水) 00:34:25.41ID:hbEuYwsD
>>448
素材データはあちこちでいろんな形で配布してるから実情にあったのを自分で選ぶべきだな

R程度の軽いデータ付属してても問題ないけど重量級のデータが詰まってるのなんて邪魔でしかない
0455デフォルトの名無しさん
垢版 |
2018/01/04(木) 00:14:34.87ID:Db2jLLtK
Docker、2016、オライリー

実践 Vagrant、Mitchell Hashimoto、2014、オライリー

Vagrant, Packer などで有名な、HashiCorp の創始者


Chef実践入門 - コードによるインフラ構成の自動化、2014

cookbookは各社が公開している

Chef社のopscode、Railsを作っている Basecamp社、
Berkshelfを作っている Riot Games社、
Pivotal Trackerを作っている Pivotal Sprout社、
aws, engine yard
0457デフォルトの名無しさん
垢版 |
2018/01/06(土) 14:49:48.45ID:qWm4dftC
まーたdockerが何か分かってない奴の質問か

dockerはカスタマイズされたアプリを作るものであって
環境を作るものじゃないんだよ

ここにアプリが有るじゃろ?から始まって
このアプリを動かすにはこのライブラリが必要で
こういう設定ファイルが必要じゃろ?
それらのアプリとそのアプリを動かす環境を
合体させてアプリを作るんだよ

だからデスクトプアプリは作れても
デスクトップ環境はそのそもdockerで作るものじゃない
スマホエミュレータはアプリなんだから作れるだろう
0458デフォルトの名無しさん
垢版 |
2018/01/06(土) 15:08:44.43ID:J/6p70u2
クリーンなビルド環境としてのdockerなど、当たり前のように環境として使われてるが?
0459デフォルトの名無しさん
垢版 |
2018/01/06(土) 15:57:41.40ID:qWm4dftC
>>458
それはクリーンな環境を作ってるのではなく
作っているのはあくまでビルド生成物
その途中がクリーンな環境になっているってだけの話だな
0460デフォルトの名無しさん
垢版 |
2018/01/06(土) 17:02:13.94ID:J/6p70u2
>>459
大丈夫か? あんま無理すんなよ
「その途中がクリーンな環境になっている」の環境はまさにdockerで作ってるんだぞ?
0461デフォルトの名無しさん
垢版 |
2018/01/06(土) 17:09:31.21ID:RuMnMvof
ビルド環境だけじゃなくテストを走らせる環境もDockerで作る
Travis CIとか使ったことないんじゃ
0463デフォルトの名無しさん
垢版 |
2018/01/07(日) 14:07:30.44
それぞれ
・ビルド生成物を作成するアプリ
・テスト結果を作成するアプリ
だと言いたいんだろう

ていうか、彼の世界観でスマホエミュレータがOKなんだったら
Linuxデスクトップ環境エミュレータだってOKなんだけどなw
0464デフォルトの名無しさん
垢版 |
2018/01/07(日) 14:39:34.25ID:esrWpXaw
スマホのエミュレータは、ハードウェアをエミュレートしているアプリを
作るところまでがdockerでやる部分でスマホの環境を作ってるのは
スマホに入れたOSが作ってるものだからね
0466デフォルトの名無しさん
垢版 |
2018/01/07(日) 15:01:39.57
>>465
you, windows 10にしちゃいなyo!
0467デフォルトの名無しさん
垢版 |
2018/01/14(日) 23:05:40.01ID:ir5vm7iB
>>465
/vagrant/ 共有フォルダ下に
プロジェクトのソース、DBディレクトリなど開発環境置いて
ホストマシンから編集すれば万事解決
0468デフォルトの名無しさん
垢版 |
2018/01/18(木) 23:50:29.04ID:XSFRYjak
コンテナ内でandroidエミュをヘッドレス起動 OK
エミュブート待機 OK
コンテナ内でadb tcpip 5555 OK
ポートフォワーディング5555:5555 OK
コンテナ内でadb connect localhost:5555 OK
コンテナ外からadb connect localhost:5555 繋がらない

なんでやねん😭
0470デフォルトの名無しさん
垢版 |
2018/01/20(土) 17:54:53.60ID:02tJQvIi
dockerの参考書でできるだけ新しく内容が濃いものはどれ?
ネット検索で断片的な情報を集めるのに疲れた
0472デフォルトの名無しさん
垢版 |
2018/01/23(火) 13:18:24.35ID:CDVCaOOu
環境構築には、vagrant, chef は、Ruby でレシピ(手順書)を書ける。
Docker もある

仮想環境コンテナ総合スレ Docker、Vagrant等 [無断転載禁止]c2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1487235664/l50
0473472
垢版 |
2018/01/23(火) 13:19:10.42ID:CDVCaOOu
472 は、誤爆
0476デフォルトの名無しさん
垢版 |
2018/03/24(土) 08:58:04.53ID:9NxgdLlD
ubuntuコンテナにRDP接続したいのですがどうすればいいですか?
Xウィンドウ?とかいうのを使うらしいのですがよくわかりません
0477デフォルトの名無しさん
垢版 |
2018/04/20(金) 13:09:59.38ID:6bRMLqam
プロフェッショナルの方、どなたか教えてください(/ω\)

今、下記内容のdockerimageを作成したいと思っています。
 
 @ ベースのイメージ:jupyter/datascience-notebook
 A Tensorflowを使いたい ※@にTensorflowがインストールされていないため

その為にdockerfileを下記の通り作成したのですが、
出来上がったdockerimageから作成したコンテナ上で上手くtensorflowが動きません。
※コンテナ内でpythonを起動し、そこで「import tensorflow as ts」を実行すると以下のエラーが出ます。
RuntimeError: module compiled against API version 0xc but this version of numpy is 0xa
ImportError: numpy.core.multiarray failed to import
ImportError: numpy.core.umath failed to import
ImportError: numpy.core.umath failed to import
2018-04-20 03:56:29.133557: F tensorflow/python/lib/core/bfloat16.cc:664] Check failed: PyBfloat16_Type.tp_base != nullptr
Aborted

dockerfileの内容は以下になりますが、何か間違っていますでしょうか?
もし間違っている場合は、修正内容をお教えください。m(__)m

■dockerfileの内容
From jupyter/datascience-notebook
RUN pip install --upgrade pip
RUN pip install tensorflow==1.5
0478デフォルトの名無しさん
垢版 |
2018/04/25(水) 15:11:44.49ID:yjbc7H4K
質問が続いて申し訳ありません。
もう本当の初心者の初心者で、これからローカル開発環境を構築しようというところで、
Vagrantの初期化に失敗し途方に暮れております。
海外サイト含めいろいろググりましたし、パスやユーザー名の問題もないと思います。
Invalid argument @ dir_s_mkdir - C:/Users/(user)/MyVagrant/MyCentOS/?vagrant_home (Errno::EINVAL)
と出て、初期化(Vagrantfileの作成)に失敗します。

どなたか助けてください・・
0481デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:43:15.85ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

AUPZD
0483デフォルトの名無しさん
垢版 |
2018/06/12(火) 19:37:05.64ID:X3Ns4c46
windows 10 メモリ4GでDocker動かすテクニック知らん?
こいつリソース食い過ぎなんだけど
0486デフォルトの名無しさん
垢版 |
2018/06/13(水) 19:07:24.99
32GBでようやく標準装備といえる
0487デフォルトの名無しさん
垢版 |
2018/06/13(水) 19:14:19.13ID:Jt1XfQ9I
>>483
DockerはWindowsとLinuxではLinux仮想マシンを使う
だから設定から仮想マシンに割り当てるメモリを変更すれば良い

WSLのLinux互換機能が高くなれば、仮想マシン使わずに
ネイティブに動くのにな。まだかなー
0490デフォルトの名無しさん
垢版 |
2018/06/13(水) 19:47:51.58ID:uyjgxa7r
DockerとVagrant両方使ったが、覚えることはVagrantのほうが少ないな
軽さではDockerかな
0491デフォルトの名無しさん
垢版 |
2018/06/13(水) 20:05:47.54ID:MfFyOg3y
コンテナ起動した後に初期化スクリプト走るタイプのコンテナが使いにくいんだがどうにかならんのあれ

oracledbコンテナ起動
クエリ通るまでポーリング
スキーマ構築
固定のマスタデータ投入
テスト用のトランザクションデータ投入
UI テスト開始

CIサーバーでテスト開始するまでが長すぎてもったいないと思った
初期データまで込みでイメージにしたい
0492デフォルトの名無しさん
垢版 |
2018/06/13(水) 20:22:25.46ID:Jt1XfQ9I
>>491
それは初期化スクリプトが問題なのではなく
データベースサーバーが起動するまで待っているから
データ込みにしてようが結局データベースサーバーが起動するまで待つ
0493デフォルトの名無しさん
垢版 |
2018/06/24(日) 10:53:45.00ID:B69th+8G
仮想サーバーがイメージつかめないんだよな
そもそも、vagrantって言葉の意味もわからんしな
0500デフォルトの名無しさん
垢版 |
2018/06/29(金) 07:00:02.38ID:fLw6tHLK
業務系はどこもこんなもんだよ
経営者がITよくわかってないから設備投資には消極的
エクセルとエディタが動けば開発できるだろ贅沢言うな経費削減だって本気で考える
0503デフォルトの名無しさん
垢版 |
2018/06/29(金) 19:06:08.95ID:KCXh18yp
Dockerを使っていてもAnsibleのような仕組みはやっぱり必要なんだな
コンテナを起動した後に起動をポーリング待ちして初期設定処理を動かさなきゃならんコンテナが多すぎる
リポジトリからコードcloneしてupすればローカル開発環境のセットアップ完了なんてのは儚い夢だった
0504デフォルトの名無しさん
垢版 |
2018/06/29(金) 20:38:57.27ID:ISSgYOxU
Ansibleのようなでかい仕組みはいらないけどね。
シェルスクリプトもしくはシェルスクリプトベースのなにかで良い

あと「ローカル開発環境」の定義がきれいに定まってない気がする。
おそらく、IDEやテキストエディタを含めたものを言ってるのだろうけど
分けて考えないといけないと思う

1. ソースコードを作成する環境
2. 開発したアプリを動かす環境
3. 実行するサーバー相当の環境
0505デフォルトの名無しさん
垢版 |
2018/06/29(金) 22:10:23.96ID:KCXh18yp
まあansでもshでもいいけど何れにせよサービス起動前とサービス起動後の設定を一元化して管理したい場合にはDockerは致命的に使いにくいってこと
0506デフォルトの名無しさん
垢版 |
2018/06/30(土) 02:41:09.28ID:UBF/c/En
>>505
それは典型的なDockerの使い方の間違いだよ
間違ってるので、何を想定してるのかよくわからない
設定を一元管理?なんの話だそれは

正しいDockerの使い方はアプリとその実行環境を固めたアプリ・サービスを作ること
及び設定内容を埋め込むことで起動するだけで動くアプリ・サービスを作る

1. 新しく物理・仮想サーバーを用意して、
2. 環境ごとのサーバーの設定を行って、
3. アプリ・サービスを動かすのに必要な環境を用意して(必要ライブラリのインストールなど)
4. アプリ・サービスをインストールして
5. アプリ・サービスの設定を行って
6. 環境構築を完成させる

よりも

1. 新しく物理・仮想サーバーを用意して、
2. 環境ごとのサーバー設定を行って、
3. アプリ・サービスをDocker経由でインストール・起動して
4. 環境構築を完成させる

この方が楽でしょ?

特に一つのマシンで複数のアプリ・サービスを動かそうとしたとき、
そのアプリ・サービス毎に必要な環境が異なっていたら大変になる
それぞれが必要なライブラリのバージョンが異なっていて動かないとかね
0509デフォルトの名無しさん
垢版 |
2018/06/30(土) 04:29:06.89ID:M0wFt4mj
cronも良く分からないが、使う?
動作確認だけなら、cronで叩く処理を動かせば良いような
0510デフォルトの名無しさん
垢版 |
2018/06/30(土) 06:32:44.17ID:UBF/c/En
>>507
普通にcronからDockerコンテナ化した
プログラム実行するだけじゃん
何が使えないの?
使い方が間違ってるだけじゃないの?
0511デフォルトの名無しさん
垢版 |
2018/06/30(土) 09:08:24.15ID:EEI2bAzw
>>506
例えばAnsibleだったら

1. 新しく物理・仮想サーバーを用意して、
2. 環境ごとのサーバーの設定を行って、
3. アプリ・サービスを動かすのに必要な環境を用意して(必要ライブラリのインストールなど)
4. アプリ・サービスをインストールして
5. アプリ・サービスの設定を行って
6. 環境構築を完成させる

ってのは1はともかく2〜5はAnsibleだけで一元管理できる

でもDockerだと

1. 新しく物理・仮想サーバーを用意して、
2. 環境ごとのサーバーの設定を行って、
3. アプリ・サービスを動かすのに必要な環境を用意して(必要ライブラリのインストールなど)
4. アプリ・サービスをインストールして
5. アプリ・サービスの設定を行って
6. 環境構築を完成させる

2はシェルスクリプトやAnsibleなど
3はDockerfile
4はComposeやKubernetesなど
5はシェルスクリプトやAnsibleなど

このように色々と使い分けなければならない

どっちにしたって自動化するなら1つのテクノロジで管理できるAnsibleのほうが楽でしょってこと
0512デフォルトの名無しさん
垢版 |
2018/06/30(土) 09:32:43.17ID:EEI2bAzw
>>508
うん、主にDB
DBに設定データを保存するパターンのアプリも必然的に同じ状況になる

もちろん自分が作ってるアプリの設定ならDBの初期化スクリプトに追記すればいいと思う
postgresなどは親切にもオフィシャルでスキーマ初期化の機構が用意されてる(oracle公式はなかったけど)

でも他人が作ったアプリではそうもいかない
DBの初期化スクリプトで初期設定データを挿入することはできるだろうけど、なにを入れればいいのかがわからない
手動で設定した後にDBを分析して、入れるべきデータを調べることはできるけど、手間がかかりすぎる
それにアプリが実行してる初期化に割り込んでデータを挿入するというのは行儀が悪い
なのでアプリが起動した後、アプリが用意したインターフェースで設定を行うことになる
管理用のREST APIが整備されてるならそれ、ブラウザでしか動かせないならSelenium、といった具合
docker execでコンテナに入ってコマンドで設定というパターンもあるけど(railsアプリに多い気がする)、設定のためだけに普段使わないフレームワークを覚える気はしない
0514デフォルトの名無しさん
垢版 |
2018/06/30(土) 15:23:37.26ID:UBF/c/En
>>511
> ってのは1はともかく2〜5はAnsibleだけで一元管理できる
一人でプログラム作ってんのか?

アプリを動かすのに必要な、OSの環境、入れて置かなければいけないパッケージ
その他必要なライブラリはなんなのか?
それをアプリを作ってない人が把握するのは大変だよね?

それらのバージョンはアプリの開発やセキュリティパッチなどで日々変わっていく
そのたびにAnsibleをメンテナンスするのは大変
物理・仮想サーバーのAnsible構成と一体化してるから、
ローカルで動かしてみるのも大変

サーバーの環境設定と、アプリの実行環境構築は別々の作業で別々の人がやる
アプリを開発してる人は自分の責任でアプリを実行できる環境を用意しないといけない。

サーバーの設定を行ってる人(Ansibleの設定書いてる人)に、
あ、これこれのライブラリ入れてください。バージョンはこれで。
アプリのバージョン更新するんで、Ansibleであれとこれ更新してください。
え?動かない。手元ではちゃんと動いてるんですが?
ライブラリのバージョン違ってるじゃないですかー、ちゃんと入れてくださいよー
あんたのミスですよ。
なんてことあってはならない
0515デフォルトの名無しさん
垢版 |
2018/06/30(土) 15:31:35.57ID:UBF/c/En
担当者を明確に分けるとこういうことなんだわ

1. [インフラ] 新しく物理・仮想サーバーを用意して、
2. [インフラ] 環境ごとのサーバーの設定を行って、
3. [アプリ開発] アプリ・サービスを動かすのに必要な環境を用意して(必要ライブラリのインストールなど)
4. [インフラ][アプリ開発] アプリ・サービスをインストールして
5. [アプリ開発] アプリ・サービスの設定を行って
6. [インフラ][アプリ開発] 環境構築を完成させる


担当者ごとに分けると以下のようになる

・Ansibleで設定する部分
1. [インフラ] 新しく物理・仮想サーバーを用意して、
2. [インフラ] 環境ごとのサーバーの設定を行って、
4. [インフラ] アプリ・サービスをインストールして
 (kubernetesのような運用向けオーケストレーション、または単体でDockerコンテナ起動)
6. [インフラ] 運用環境構築を完成させる

・Dockerでコンテナ化する部分
3. [アプリ開発] アプリ・サービスを動かすのに必要な環境を用意して(必要ライブラリのインストールなど)
4. [アプリ開発] アプリ・サービスをインストールして
 (Composeのような開発向けオーケストレーション、または単体でDockerコンテナ起動)
5. [アプリ開発] アプリ・サービスの設定を行って
6. [アプリ開発] 開発環境構築を完成させる

作業は明確に分かれてるんだよ
担当者が違う作業を一緒にしてしまってはいけない
0516デフォルトの名無しさん
垢版 |
2018/06/30(土) 15:38:28.48ID:UBF/c/En
>>513
> ドッカーはウェブアプリ専用

違うよ。例えばffmpegのような多くの外部ライブラリに依存し
バージョンの違いの影響も大きくコンパイルオプションも豊富で、
権利関連の問題でどのディストリでも標準パッケージでは満足できず
かと言ってライブラリを自分でビルドすると依存関係が壊れがちになって、
すべての機能をONにしたければ自分でビルドするはめになるようなソフトは
Dockerを使うと、簡単にビルド・実行できるようになる。
自分の好きなディストリを使いつつ、ffmpegは他のディストリベースにすることができる
0517デフォルトの名無しさん
垢版 |
2018/06/30(土) 17:59:07.34ID:dpeJpZ7C
サーバの環境をdocker上に作っておく
リプレースが必要になったら新しいサーバにimageを移す

古いけどファミコンのカセットを新しいサーバに刺しなおすだけ
0518デフォルトの名無しさん
垢版 |
2018/06/30(土) 18:03:48.84ID:EEI2bAzw
つまり

* Dockerの利点はアプリの依存関係のパッケージングである
 JavaランタイムなしでJavaアプリが動かせますといったことがOSレベルの依存関係でも可能

* Dockerによってパッケージングされたアプリだけではシステムとして成立しない
 Ansibleやオレオレスクリプトで別途環境構成や設定を管理する必要がある

こういうことですか?
DockerはあくまでAnsibleやオレオレスクリプトで管理される取り扱いが容易な部品に徹すると
0519デフォルトの名無しさん
垢版 |
2018/06/30(土) 18:55:13.03ID:HMZbAOjg
そもそもAnsibleとDockerって明確にセグメント違うでしょ
優劣がどうこう言うたぐいのものじゃない
0520デフォルトの名無しさん
垢版 |
2018/06/30(土) 19:51:53.39ID:EEI2bAzw
AnsibleはAnsibleだけでいいけど
DockerはAnsibleやシェルなど別途構成要素が必要
結局はここに落ち着く
>>503から進展してない
0521デフォルトの名無しさん
垢版 |
2018/06/30(土) 20:01:12.07ID:UBF/c/En
> AnsibleはAnsibleだけでいいけど
> DockerはAnsibleやシェルなど別途構成要素が必要

え? Ansibleでアプリ開発してんの?
普通別の言語を使うよね?
というかAnsibleでどうやってアプリ開発するのか知らんがw

なぜそんなに、アプリ開発の一環である
Dockerコンテナの作成を、Ansibleでやることにこだわるのか?
どうせアプリ開発は別言語でやるのに

インフラ担当は、アプリ開発をしなくていいんだよ?
0523デフォルトの名無しさん
垢版 |
2018/06/30(土) 21:01:45.05ID:EEI2bAzw
Docker使わない場合(4step, 2lang)
【Java】 Javaアプリ開発
【Ansible】 Javaランタイムインストール
【Ansible】 Javaアプリデプロイ
【Ansible】 アプリ設定

Docker使う場合(5step, 3lang)
【Java】 Javaアプリ開発
【Docker】 Javaランタイムインストール
【Docker】 Javaアプリデプロイ
【Ansible】 コンテナデプロイ
【Ansible】 アプリ設定

覚えること、仕事増えてるよね?
0525デフォルトの名無しさん
垢版 |
2018/07/01(日) 00:21:42.91ID:uZDpH5tc
>>522
だってすべてAnsibleだけでできるわけないじゃん。
インフラさんはAnsible使ってるだろうけど、
アプリ開発者は別の言語使ってるよね?

インフラさんにとっては、アプリがなんの言語で作られてようが
Dockerコンテナで実行環境毎まとまってようがどうでもいいことじゃん

重要なのはアプリを開発してないインフラさん
(=どんな実行環境・ライブラリなどで動くかなど知らない)が
アプリに依存したことを意識せず「Dockerコンテナを動かす」という
ただそれだけのことで、サービス運用環境を作れること

専門家に任せましょう。どんな実行環境・ライブラリなどで動くかは
アプリ開発者は知ってます。それで作ってテストしてるんだから
アプリ開発者はAnsibleなんか使いません
0526デフォルトの名無しさん
垢版 |
2018/07/01(日) 00:46:26.68ID:uZDpH5tc
あとAnsibleを使えばDockerのようなことができると
思ってるようだけど、できないからな

・Dockerを使うと実行環境をアプリに組み込むことができます
・Dockerはアプリが使用するポート番号を自由に変更することができます
・Dockerは複雑なアプリ設定を単純化し、引数や環境変数で指定可能なアプリに作り変えます

所詮Ansibleは作られたアプリに対して設定を行うだけで、
Dockerのようにアプリ自体を改善・強化することはできない
アプリをDockerコンテナ化するだけでいろんなOSで動かすできるのも
アプリ自体の改善・強化の一つだな
0528デフォルトの名無しさん
垢版 |
2018/07/01(日) 03:17:51.52ID:uZDpH5tc
>>527
だから使い方を完全に間違ってる
Dockerはアプリに実行環境を埋め込んで、完全体のアプリを作ること
exeファイルの中にdllなどを埋め込むのと近い

あんたが言ってるのは、C言語でソースコードをビルドしてバイナリを生成して、
バイナリを実行したらcronが動くんじゃなくて、ファイルが存在するだけで
cronを動かすようにしたいって言ってるようなもの

ビルドしただけで動き出すようなプログラムなんてない
意味不明なことを言ってるってわかるだろ?

もちろんDockerコンテナを実行したら内部でcronが実行されてるっていうのなら
簡単にできるが、cronを使うまでもなく実行時間までsleepするだけで十分だな
0529デフォルトの名無しさん
垢版 |
2018/07/01(日) 08:10:05.39ID:Qn9lbnal
>>525
>>522
>だってすべてAnsibleだけでできるわけないじゃん。
>インフラさんはAnsible使ってるだろうけど、
>アプリ開発者は別の言語使ってるよね?
アプリ開発言語は別に決まってんじゃんって常識的に考えてわからんか?

>インフラさんにとっては、アプリがなんの言語で作られてようが
>Dockerコンテナで実行環境毎まとまってようがどうでもいいことじゃん
そのとおり
ドウデモイイんだ
ドウデモイイので使うテクノロジーは減らしたほうがいい

>重要なのはアプリを開発してないインフラさん
>(=どんな実行環境・ライブラリなどで動くかなど知らない)が
>アプリに依存したことを意識せず「Dockerコンテナを動かす」という
>ただそれだけのことで、サービス運用環境を作れること
ロールでいいじゃん
ロールの詳細までは別に知らなくていい(知りたければ見ればいい)

>専門家に任せましょう。どんな実行環境・ライブラリなどで動くかは
>アプリ開発者は知ってます。それで作ってテストしてるんだから
>アプリ開発者はAnsibleなんか使いません
クラウドが一般化してきてプログラマでもインフラに関わらなきゃならない機会は増えてる
当然Ansibleも必須科目
0530デフォルトの名無しさん
垢版 |
2018/07/01(日) 08:13:01.18ID:Qn9lbnal
>>526
便利っちゃ便利だけど別に必須でもなんでもないよねそれ
それに逆に設定がめんどくさくなることもある(DBとか色々)
0531デフォルトの名無しさん
垢版 |
2018/07/01(日) 08:27:59.52ID:Qn9lbnal
>>528
Dockerで作った完全体のアプリ()を誰かがコントロールしてやらなければならないんだどうせなq
exeを作っただけじゃ役に立たないようにイメージを作っただけじゃ役に立たない
サービスとして起動して起動後の設定を行う必要がある
そのための基盤がAnsibleみたいな構成管理ツール
どうせAnsible使うなら最初から全部Ansibleでやりゃいいじゃんってこと
依存関係をDockerfileで解決するかPlaybookで解決するかの違いでしかない
複雑な依存関係がある場合はDockerでカプセル化するメリットがあるかもしれんがそんなのは頻繁に起こることじゃない
0532デフォルトの名無しさん
垢版 |
2018/07/01(日) 09:18:18.65ID:k5uLwq/7
bashで全部できるならbashでやるのか?
馬鹿じゃねーの?

Dockerが必要な状況ならDocker入れればいいだけで何のためにDocker使うかわかりもしないのに入れて
手順が増えるとか言う馬鹿
0533デフォルトの名無しさん
垢版 |
2018/07/01(日) 09:21:29.18ID:k5uLwq/7
問題解決や利便性のためにDockerが必要な局面もあるだろ
そういうときにDockerが使えればいいだけ

Ansibleしか使えないのに俺スゲーしたいんだろ
俺日本語だけで十分だからなんで英語やフランス語使ってるのかわからんみたいな
低レベルな自慢みたいな浅はかな感じがする
0534デフォルトの名無しさん
垢版 |
2018/07/01(日) 09:26:11.80ID:uZDpH5tc
> ドウデモイイので使うテクノロジーは減らしたほうがいい

それならAnsibleをなくしたいねw

だってシェルスクリプトは普段からCLIで使ってるけど
Ansibleは使わないじゃん。

シェルスクリプトはなくせないが、Ansible
はシェルスクリプトで置き換えれば無くせる

Dockerはシェルスクリプトベースだしね
0535デフォルトの名無しさん
垢版 |
2018/07/01(日) 13:19:42.19ID:Qn9lbnal
そう必要なときに使えばいいんだよ

bashだけで構成管理する大道芸はキツイ
からなんかツールないとやっていけないぞそう世界中のみんなが考えて発明されたのがAnsibleのようなツール
必要性から生まれたツールなんで必要なものなんだね

Dockerは使うと面白いのはわかるけど必要かって言われると正直別に…ってところだな
依存関係?どんだけごった煮のサーバー作る気だ?
ポート変えれます?おめでとさん
引数や環境変数で設定可能?パラメータはファイルに残そうね
0536デフォルトの名無しさん
垢版 |
2018/07/01(日) 17:00:28.45ID:uZDpH5tc
>>535
アプリに実行環境を組み込んで可搬性のあるアプリを
作るってところはまだ意味がわかってないのかな?
そこについての言及がないってことはそうなんだろうね

Ansibleで開発したアプリの設定を行うほうが大道芸
だって自社で開発したアプリにAnsibleモジュールは存在しない
自分でモジュール作るか?それともコマンド呼び出しで頑張るか?

自社で開発したアプリを動かすにはあれとこれのインストールが必要です。
バージョンが上がったので今度はそれも追加してください
設定項目が追加されてるので、それを設定するように書き換えてください
冪等性あるように作ってください
アプリのデプロイの前に、Ansibleで環境を更新してください
そうしないとアプリ動きませんから!
絶対にミスしないでくださいよ!!

はい、大道芸w

Dockerを使うとそういう複雑なところが隠蔽されるんだよ
Ansibleで書くのはDockerコンテナを起動する。そのためのモジュールを使うだけ
手元でテストしたDockerコンテナを実環境でも使う。だから実行環境に違いはない。
Ansibleの定義ファイルは単にバージョン番号を変更するだけ
0537デフォルトの名無しさん
垢版 |
2018/07/01(日) 17:13:48.82ID:Qn9lbnal
まだわからんかねぇ
Dockerで完結しないってとこからは目をそらし続けるんだ
コンテナ起動するたびシェルで必死に起動後の設定とかアホくさ

そもそもそんな手順はいらない
ロール用意したんでそれ使ってくださいで終わり
0538デフォルトの名無しさん
垢版 |
2018/07/01(日) 17:26:44.38ID:uZDpH5tc
> Dockerで完結しないってとこからは目をそらし続けるんだ

どうせアプリはJava使ってありRuby使ったりするんだ、
Ansibleだけで完結することもないよ

それにお前の定義によればDocker使っても「Ansibleだけで完結」してることになるだろ
なぜって? AnsibleのDockerモジュールを使うからだよ

お前、Ansibleでcronの設定したら「Ansibleだけでは完結しない。cronが必要」って言うか?
言わないよなぁ? Ansibleでcron設定しようがDockerコンテナ化したアプリの設定しようが
Ansibleだけで完結してることになってるだろ


んで話を戻して、JavaやRubyなどでアプリを開発してるが
Dockerを使おうがAnsibleを使おうが、新たに別のテクノロジーを使ってるのは一緒。
ならDockerのほうが可搬性の点でもシェルスクリプトベースという点でも
メリットがあるので、Dockerを使ったほうがいい
0539デフォルトの名無しさん
垢版 |
2018/07/01(日) 17:28:34.87ID:uZDpH5tc
訂正&補足

んで話を戻して、普段JavaやRubyなどでアプリを開発してる人が
Dockerを使おうがAnsibleを使おうが、新たにアプリ開発言語とは別のテクノロジーを使ってるのは一緒。
0540デフォルトの名無しさん
垢版 |
2018/07/01(日) 17:43:06.36ID:Qn9lbnal
必要な環境はロールでカプセル化されっからドッカーでカプセル化して二度手間にする必要はないってことな


つか
「Ansibleで完結」を拡大解釈してねえか?
アプリ開発にジャヴァやらなんやら使うからほれみろAnsibleで完結してませーんってボケにしてもあんまし面白くないぞ


Docker使っても使わなくてもAnsibleで完結してるってのはそうだな
所詮は1モジュールでしかない
逆にDocker視点で見れば全然完結してなくてDockerより大きな他の仕組みが必要になる
0543デフォルトの名無しさん
垢版 |
2018/07/01(日) 21:27:52.08ID:JvyRKliu
>>528
その通りだとするとcronを使ったwebシステムのパッケージングにはDockerは不向きってことになるが
だとすると俺のイメージと違うな
実行環境を含めたパッケージングの利点はまぁわかるが、ツールレベルのバイナリを使うのにわざわざビルドするのはめんどくさくない?
実行環境をパッケージングできるのはすごいアイデアだと思うよ。でも俺は例えばcatを使うのにわざわざDockerでビルドしたりしないな。そのレベルのバイナリならyumとかapt使うわ
0544デフォルトの名無しさん
垢版 |
2018/07/01(日) 22:57:33.50ID:uZDpH5tc
>>543
馬鹿か。だから自分で作ったアプリに実行環境をくっつけるんだよ
ほんとなぁ、開発者のためのツールだってわかっちゃいねぇ
0545デフォルトの名無しさん
垢版 |
2018/07/02(月) 16:56:48.08ID:JP9Qw5xK
LXC 生で使ってる人いる?
0546デフォルトの名無しさん
垢版 |
2018/07/03(火) 14:33:51.33ID:lAm6wwJh
つかいたくなければ、つかわなければいい
これだけで全部解決できるわけないし
0547デフォルトの名無しさん
垢版 |
2018/07/03(火) 16:29:17.64ID:1jr4H9Em
>>544
批判的な俺だが仕事ではDocker使ってるんだよね
小規模webサイト程度ならほんと使い勝手いいわDocker
引っ越しもすげー楽
0548デフォルトの名無しさん
垢版 |
2018/07/03(火) 18:13:47.17ID:Z18rPYuK
ウェブサービスや一回走らせて終わりのコマンドと相性が良すぎるんだよなドッカー
それ以外は残念だけど面倒が増えるだけ
0549デフォルトの名無しさん
垢版 |
2018/07/04(水) 00:22:44.56ID:rYQuTGUK
> それ以外は残念だけど面倒が増えるだけ

サービスとコマンド以外に世の中に何があるんや?
0550デフォルトの名無しさん
垢版 |
2018/07/04(水) 21:54:18.61ID:gFgZc5FG
Q8Y
0551デフォルトの名無しさん
垢版 |
2018/07/05(木) 09:11:51.87ID:s/7ffhjx
ウェブアプリテスト環境をmac上のDocker環境で行っているのですが
雨が続くみたいのでリモート作業できるよう自宅のwindowsで同じ環境を構築しようと考えています

Docker上の挙動ってホストOSに依存しますか?
VMならHWレベルでエミュレートしてるので大丈夫そうですけど
Dockerの仮想化ってどのレベルでやってるんでしょうか

動かすのはスクリプト言語なのでバイナリレベルの互換性とかはそれほど影響うけなさそうですけど
通信したときのエンディアンとかはホストに依存したりするんでしょうか

やりとりはjsonのみなのでそのへんもちゃんと吸収されてるとは思うのですが
変なところではまりたくないので事前に確認したいです
0552デフォルトの名無しさん
垢版 |
2018/07/05(木) 10:10:29.76ID:PwFNAHcP
>>551
もともとDockerはLinuxカーネル上で動くものとして作られた
今はWindowsやIBM Zなどに対応しているようだが、使用例は少なく
意識して使おうと思わない限り、Linux(x64)のイメージを使ってるはずだ

Linux(x64)のイメージを使っているのだから、
そのDockerコンテナはMacやWindows上でネイティブに動かない。
だからMacやWindowsでは仮想マシンが使われておりVM上でLinuxが動いている
(このLinuxはDockerを動かすためだけの軽量なLinuxで直接使うことはないのでディストリは意識しなくていい)

Docker for Mac では xhyve (Mac純正仮想マシン)が使われている
Docker for Windows では Hyper-V(Windows純正仮想マシン)が使われている
Docker for Mac/Windowsのほうが新しく推奨だが、Hyper-VはWindows Pro以上でないと
使えないので、Docker Toolbox(Virtual Box)を使うしかない

仮想マシンを使用しているということを意識しないように、うまく設定されてはいるが、
それでも仮想マシンであるがゆえに、CPUやメモリの使用する量を仮想マシンに割り当てるしかなく
その範囲でしか使うことができない。これらはDockerの常駐アイコンから設定できる

> Dockerの仮想化ってどのレベルでやってるんでしょうか
勘違いしている人が多いが、仮想化 = ハードウェアエミュレーションという意味ではない
仮想化というのは単に物理的なものを切り離して抽象化するという意味なだけだ

仮想マシンは、マシンを仮想化したものだが、Dockerが提供しているものは、
(実行環境の)仮想化であって仮想マシンではない。ハードウェアを抽象化して
見せているのではなく実行環境(カーネル以外のOSやライブラリなど)を抽象化して見せているだけ
0553デフォルトの名無しさん
垢版 |
2018/07/05(木) 10:12:02.23ID:PwFNAHcP
訂正

Docker for Mac/Windowsのほうが新しく推奨だが、Hyper-VはWindows Pro以上でないと
使えないので、 "Docker for Windowsが使えない場合は" Docker Toolbox(Virtual Box)を使うしかない
0554デフォルトの名無しさん
垢版 |
2018/07/05(木) 10:18:19.71ID:s/7ffhjx
環境構築は人にたよってて
その上でjavaやPHPのコーディングするのがメインなのでちゃんと理解できてない…

今の案件がRailsなんですけど
結論からいうとwindows上のDockerでRailsを動かす同じ環境を構築するのは難しい感じでしょうか
0555デフォルトの名無しさん
垢版 |
2018/07/05(木) 10:29:08.88ID:PwFNAHcP
>>554
別に?

同じように使える。というか同じように使えるように
Docker社が頑張ってくれてる。

もともとLinuxカーネルでしか動かないのに
よくもまあこんなに頑張って対応したもんだと思うよ
WindowsやMacでも動くことの重要性を強く認識していたんだな

本番環境ではLinuxカーネル上で動かすわけで、Linux上にだけ対応するという道もあったはず。
でもWindowsやMacに対応したのは、多くの開発者の開発マシンはWindowsやMacで
開発者にとってのツールであるDockerはWindowsやMacでも使えることが重要だと考えていたのだろう


上の方にいる、誰かが作ったアプリをパッケージングして配布することだけしか考えてないやつには
わからんだろうね。だから配布するならansibleで十分じゃんという発想になってしまう。
Dockerはアプリ開発者のためのツールですから
0557デフォルトの名無しさん
垢版 |
2018/07/05(木) 11:37:29.66ID:s/7ffhjx
何度もすいません

インストールはできてコマンドラインからも動作させることはできたんですけど
ファイルシステムやメモリの設定はどこから行えばいいんでしょうか

mac版はランチャーがあって
Preference > Daemon > Advanced にファイルシステムの設定ファイルがかけたり
Preference > Advanced からメモリの設定ができたりしたんですけど
0558デフォルトの名無しさん
垢版 |
2018/07/05(木) 12:38:07.08ID:ODR9lPch
>>554
素直に仮想マシンを立てて、Ansibleなど構成管理ツールを使って、本番と開発環境を可能な限り揃えたほうがいいよ
Dockerはほぼどこでも動くけど、どこでも同じように動作するわけじゃないし、トラブルが発生した時の対処手順がDockerと実機サーバーや仮想マシンとでは大きく異なる
本番も開発環境もDockerで統一するなら許容範囲内だけど、それでも環境差異のリスクはあるね
0559デフォルトの名無しさん
垢版 |
2018/07/05(木) 12:51:42.85ID:PwFNAHcP
> 素直に仮想マシンを立てて、Ansibleなど構成管理ツールを使って、本番と開発環境を可能な限り揃えたほうがいいよ

それをやると問題になるのが、(Windows or Macで)ファイルを編集して
すぐにそれを反映させるのが大変になる。いちいちアップロードなんてしてられない
開発時はソースコード書いてテスト実行という流れが1分間に数回のレベルで発生する

また開発時はデバッグ用のモジュールが必要になる。
ログの表示とかデバッガの実行とか。
本番環境と揃えるのは、開発面ですごく効率が悪い
アプリ開発してない、単に配布しかしてないやつにはそれがわからない
0560デフォルトの名無しさん
垢版 |
2018/07/05(木) 13:01:45.08ID:PwFNAHcP
>>557
Windowsもタスクトレイのアイコンから設定できるだろ?
Docker Toolboxはどうなってるのかしらんが。
0561デフォルトの名無しさん
垢版 |
2018/07/05(木) 13:11:16.62ID:PwFNAHcP
>>558は(Ansibleで構成した)仮想マシンと実機環境が同じだという前提のようだが、
その理屈だと Windows or Mac 上のDockerは仮想マシンで動いてるので
Dockerが動く仮想マシンと、Dockerが動く実機マシンは同じと言える

実際の所、Dockerイメージの中に実行環境が組み込まれているので、
Dockerイメージは、LinuxカーネルとDockerにしか依存しない
Dockerイメージは同じものを使うという前提であれば、
あとはLinuxカーネルとDockerを揃えてしまえばほとんど同じ

たとえ違っていたとしても、Linuxカーネルに関しては高い互換性が
あることが今での実績から明らかで、DockerはDockerコンテナを動かすために
使っているだけで、開発したアプリがDockerに依存しているわけじゃない
なのでLinuxカーネルもDockerもバージョンが変わったところで問題はほとんど発生しない。

環境差異のリスクがあるのはDockerを使わないからなんだ
0563デフォルトの名無しさん
垢版 |
2018/07/05(木) 14:37:12.16ID:1V9Bip0s
>>561
Dockerといえど環境バグは結構あるよ
まあ仮にDocker間で100%互換性があると譲歩したところでテスト、本番が非Dockerなら開発にDockerを使うのはリスクしかない
0565デフォルトの名無しさん
垢版 |
2018/07/05(木) 15:03:35.76ID:PwFNAHcP
>>563
本番もDocker使うに決まってるでしょw
っていうか、Kubernetesとか使ったことある?
Docker前提だからね。もう大規模はDocker前提の時代になってる
0568デフォルトの名無しさん
垢版 |
2018/07/10(火) 10:00:57.15ID:86tCne/Q
GKEもECS+Fargateも使える、この世の中でdocker使わない意味もないし、さすがにmanagedに対してansible使う機会は減ってきたと言わざるを得ない
0570デフォルトの名無しさん
垢版 |
2018/07/31(火) 15:12:20.08ID:Jag0raWy
コンテナは上がってるのに

docker exec -it xxxxx /bin/bash
Error: No such container: xxxxx

になったんですけど原因わかりませんか?

ymlファイルはいじってなくて

xxxxx:
image: yyyyyyyyyyyyyy
container_name: xxxxx

docker ps の結果は普通に起動してる
zzzzzzzzzzzz yyyyyyyyyy "/bin/bash" 4 days ago Up 23 minutes 0.0.0.0:nnnn->nnnn/tcp

昨日までは普通に動いてたのに
設定ファイルは色々いじったんですがコンテナに関係する部分は触ってないはずなのに…

dockerは便利だけどブラックボックスすぎて一度問題起きると自分で全く解決できないのが辛い
0571デフォルトの名無しさん
垢版 |
2018/08/05(日) 16:25:49.27ID:7Eiwzs5v
よく分からんなら問題解決なんてしないでコンテナ作りなおしちゃおーぜってのがdockerの基本中の基本
根本原因を調べないと再発するのでは?って思うかもしれんけどそのたびに作りなおせば問題ないよね
0573デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:32:53.48ID:WUtnzCvr
>>572
だから再発するまでは問題ないんだよ
「昨日までは普通に動いてたのに」ってことはコンテナを立ててからしばらくは正常に動いてるってこと
その間だけサービスを提供してダメになったら(なりそうだったら)予備のコンテナに切り替えるってわけ
コンテナ切り替えたら元のコンテナは破棄して次の予備コンテナをスタンバらせる
0577デフォルトの名無しさん
垢版 |
2018/08/08(水) 15:11:49.43ID:FOgunlIR
エラーの原因はコンテナと共にバイナリの海の藻屑となる。。。
積み重なったコンテナはやがて墓場を形成し、次第に人々はこう呼ぶようになった。。。
「どっかー(行っちゃった)の墓場」と。。。
0579デフォルトの名無しさん
垢版 |
2018/08/09(木) 21:19:10.45ID:s67NkejU
そういやWindowsコンテナってあんま話題にならないけどどうなんだろ
XP、.NET 2.0、正体不明の自社・他社COMライブラリ、Excel.Applicationなどが仕事してる古いシステム
まるごとコンテナ化して隔離できんかな
0582デフォルトの名無しさん
垢版 |
2018/09/24(月) 19:46:38.93ID:R7V+zLhQ
内容読む限りKubernetesクラスタとかDockerサーバのセキュリティ甘いやつ狙ってそいつらにデプロイさせてるんだと思う
まぁ自作と公式以外信頼しないのは重要だと思うけど
0584デフォルトの名無しさん
垢版 |
2018/10/10(水) 14:24:27.56ID:+MpVqK9H
virtualboxの上で直接に動いてるLinuxと
virtualboxの上にのってるVagrant上で動いてるLinux

この2つのLinuxって挙動とか変わってきたりしますか?
C言語とかシェルスクリプトのテスト環境として全く等価なんでしょうか?
0586デフォルトの名無しさん
垢版 |
2018/10/10(水) 17:11:43.59ID:qywSzTWT
>Vagrant上で動いてるLinux
Vagrantは、仮想OS ではないので、Linux は、Vagrant上で動かない

「Vagrant」で検索!
0587584
垢版 |
2018/10/10(水) 17:25:45.68ID:+MpVqK9H
>>585
>>586
理解できました
ありがとうございます!
0588デフォルトの名無しさん
垢版 |
2018/10/10(水) 19:12:20.57ID:YG2jN7++
>>584
インストールから設定をキッチリ揃えたわけでもなければ当然ながら等価じゃないよ
無視できる差異かどうかってとこが重要
これはDockerでも同じこと
厳密に同じ環境はどうやったって作れない
0591デフォルトの名無しさん
垢版 |
2018/10/11(木) 07:15:08.44ID:ATTrPfNN
何をもって「挙動が同じ」「等価」とするかだよね
スクリプトでハードウェア情報取得しようとすれば環境によって変わってくるだろうし
外部のWebサイトに対して自分で書いたクローラーを実行するとかなら多分「挙動が同じ」になるだろう
0592デフォルトの名無しさん
垢版 |
2018/10/12(金) 12:25:02.77ID:M+u1oV0j
コンテナ上で仮想OSは動かないということだけど、例えば「docker pull ubuntu」で取得したubuntu動かすのと仮想マシンでubuntu動かすのとの違いが良くわからない
0593デフォルトの名無しさん
垢版 |
2018/10/12(金) 12:45:36.05ID:vWnsmRfa
>>592
dockerにとってubuntuは材料に過ぎない
ubuntuという材料をベースにDockerfileを書いてアプリを作る
そういうことが簡単にできるように作られたのがdocker
0594デフォルトの名無しさん
垢版 |
2018/10/12(金) 13:36:53.15ID:FbxLjgd5
つまりubuntuっぽい(というか見た目は変わらない)動作をするアプリが動いてるだけってことか
ありがとう
0595デフォルトの名無しさん
垢版 |
2018/10/12(金) 21:21:03.81ID:mCoAwEvP
マイナーなツールでフォアグラウンド起動のしかたがわからない場合どうする?
0596デフォルトの名無しさん
垢版 |
2018/10/12(金) 21:45:24.47ID:sq0JMdbV
フォアグラウンド起動の方法がないじゃなくて
わからないだけなら、調べろとしか
0597デフォルトの名無しさん
垢版 |
2018/10/13(土) 00:18:26.66ID:M1XBvJBU
所詮はDockerって省エネを目指した仮想環境に過ぎないからね
そんなこと気にしなければVagrantがベスト
0599デフォルトの名無しさん
垢版 |
2018/10/13(土) 10:23:57.31ID:YNebL+WU
用途がかぶる部分があるので比較する意味は有る

自転車、自動車、鉄道、飛行機は全く違うものだけど、移動するためのものという用途は同じ
旅行や通勤の際にこれらを比較する価値は大いに有る
vagrantとdockerも同様
0601デフォルトの名無しさん
垢版 |
2018/10/13(土) 11:20:59.09ID:MAZOR1zR
基本的にはファイルシステムだけカプセル化してるんだっけか?
でもportなんかもカプセル化してるし、どこまでを閉じ込めてるか結構微妙。
0602デフォルトの名無しさん
垢版 |
2018/10/13(土) 12:11:11.17ID:4DTv/biP
>>601
アプリケーションを動かすのに必要なもののうちOS以外の部分を
アプリケーションに内包させていると考えればいい
0603デフォルトの名無しさん
垢版 |
2018/10/13(土) 12:14:09.83ID:4DTv/biP
>>599
なにかアプリを使おうと思った時、わざわざ別マシンを用意して別の環境で動かすのが仮想マシン

今自分が使ってる環境の上でアプリを起動するのがDocker

ぜんぜん違う
0605デフォルトの名無しさん
垢版 |
2018/10/13(土) 21:33:30.23ID:YNebL+WU
>>603
抽象化ができないエンジニアには難しいかも知れないが
ホストと隔離された環境でなんらかのアプリを使うという抽象的な目的は同じなんだよ
基本になってるテクノロジが違うけどそこは同じ
なので比較検討することには意味が有るわけだ

例えばローカル開発環境を構築するという抽象に対してDockerあるいはVagrantという具象が有る
もちろんそういう意味ではホストに必要なパッケージをインストールするだけの素朴な構成も比較検討に値する
完全仮想化とコンテナ仮想化は違う技術だから比較に値しないなんてのは表層しか捉えられないなにもわかってない人の発想なんだね
0606デフォルトの名無しさん
垢版 |
2018/10/13(土) 21:48:14.00ID:An0DfPZD
技術が違うんじゃなくて、目的が違う
ここまで理解能力がないと、本当に話にならない。
0607デフォルトの名無しさん
垢版 |
2018/10/13(土) 22:12:07.13ID:An0DfPZD
Dockerの典型的な利用例の一つは仮想マシン上でDockerコンテナを動かすこと
仮想マシンとDockerをごっちゃにしているやつはなんでそうするかを理解できない
目的が同じものなのになぜ2つのツールを同時に使うんだ?と思ってる

答えははっきりしてる。それこそ目的が違うものである証拠
Dockerを使うとアプリにそれを動かすのに必要なものがOS以外すべてバンドルされる。
それによってDockerさえ動いていれば、どこの環境にも同じDockerイメージを
持っていって使うことができる。この可搬性こそがDockerの目的

単純にVagrantを使うと特定のOS、ディストリ専用にVagrantfileを書かないといけなくなる
各OSでパッケージ名やデフォルト設定やパスなどが違ってるからだ。

そこで可搬性が高いDockerを併用すると、DockerのインストールまではOS、ディストリ依存に
なってしまうが、それ以降は全く同じ手順でDockerコンテナを起動することができる
Vagrantfileでいろいろ書く必要はないし、VagrantをAnsibleやChefと併用する必要もなくなる

もちろんVagrantを使わない環境、例えばAWSやGCPなどのクラウドでもあっても
今は直接Dockerイメージをサポートしてるのもあって、Dockerイメージを指定するだけでいい

Dockerは可搬性を高くするためのもの
仮想マシンはただのマシンでしか無いし、Vagrantは環境構築ツールでしかない
目的が全然違っている。
0608デフォルトの名無しさん
垢版 |
2018/10/13(土) 23:33:44.26ID:YNebL+WU
>>606
目的なんて無数にあるだろ
自分が考える目的以外の目的が存在するということすら想像できないようじゃ話にならない
本当に話しにならない
0609デフォルトの名無しさん
垢版 |
2018/10/13(土) 23:37:37.63ID:An0DfPZD
そうやって一般論でごまかすのやめーや

Dockerが考えてる目的を書いただけの話
別の目的に使おうというのなら、使いにくいのは当然だってことだ
少なくとも仮想マシンやVagrantとDockerの目的は違っている
お前の目的の話はしてない。Dockerの目的の話をしてる。
0610デフォルトの名無しさん
垢版 |
2018/10/13(土) 23:44:07.35ID:YNebL+WU
>>607
あらら、まだわからないのか

キミの言うところのDockerの高い可搬性を利用して、例えば開発環境を構築するという目的を達成するんだよ
そして開発環境を構築するという目的を解決する手段はDockerに限らずVagrantでもローカルでも構わない
だから比較検討して目的を達成するのにはどのテクノロジを採用するのがよいかを考えるわけだ

おそらくキミの中ではDockerはこの目的に使うもの、Vagrantはこの目的に使うもの
といったようにただ一つの絶対的な目的があるんだろうな
目的を解決する手段がいくつも有ること、ツールを使う目的はいくつも有ることに気付いていない
最低限そこに気付いてくれないと話しにならないよ
0611デフォルトの名無しさん
垢版 |
2018/10/13(土) 23:51:41.18ID:YNebL+WU
>>609
君のレスを引用すると「Dockerは可搬性を高くするもの」
これがDockerが考えている目的なわけだ(というか君の脳内のDocker社の考える目的というべきか)

じゃあ可搬性を高くしてどうするんだ?
その先の目的がまだあるだろ?
その目的は利用者が抱える課題によって様々なんだよ
0612デフォルトの名無しさん
垢版 |
2018/10/13(土) 23:52:12.52ID:An0DfPZD
> キミの言うところのDockerの高い可搬性を利用して、例えば開発環境を構築するという目的を達成するんだよ

自分で言ってる通りじゃないかw
Dockerの目的は高い可搬性を作る所まで。

Dockerを利用するってことは、別に作業があるんだろ?
その作業の目的が開発環境を構築することであって
Dockerを使う目的ではない


キミ、物事の本質を捉えられるようにならないとダメだよ
0613デフォルトの名無しさん
垢版 |
2018/10/13(土) 23:53:24.28ID:An0DfPZD
>>611
> じゃあ可搬性を高くしてどうするんだ?
> その先の目的がまだあるだろ?

その先の目的? 金を稼ぐってことかいな?
その理屈で言えば、どんな道具も目的は同じになるなw
0614デフォルトの名無しさん
垢版 |
2018/10/13(土) 23:58:24.68ID:YNebL+WU
今置かれてる状況がある
また解決したい何らかの問題がある
そして解決する手段が複数ある

ここまできて比較検討しないって言っちゃなんだけど技術者失格だろう?

非常に幸運で何らかのテクノロジ一択で業務全部をカバーできる
なんて状況でもなければ必ず比較検討が必要になる
0615デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:00:31.63ID:mBxOrkWE
>>614
お前が物事の本質をわかってないだけ。

Dockerの目的は可搬性を上げるためだし、
テキストエディタの目的はテキストファイルを編集するもの

開発環境を作るために、テキストエディタを使うだろと
いくら吠えたって、テキストエディタの目的が開発環境を作ることにはならないのと
同じようにDockerの目的は開発環境の作成ではない
0616デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:04:44.32ID:RzJcTIeH
>>612
>Dockerを利用するってことは、別に作業があるんだろ?
>その作業の目的が開発環境を構築することであって
>Dockerを使う目的ではない

開発環境構築は間違いなくDockerを使う目的の1つ

A「なんのためにDockerを採用したの?」
B「開発環境構築のために採用しました」

自然だね

A「なんのためにDockerを採用したの?」
B「開発環境構築のために採用しました」
A「そんなのはDockerの目的じゃない!」

アホかこいつ
0617デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:06:49.52ID:RzJcTIeH
>>613
極論すればそうだな

どんな道具にも複数の利用目的が存在する
どんな目的にも解決手段は複数有る

だから比較検討するんだよ
0618デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:10:20.62ID:RzJcTIeH
>>615
道具の目的は作成者や利用者の認識によって様々
テキストエディタの主目的は確かにテキストの編集だろう
だが目的はそれだけではなく人によってことなる
"誰か"の目的を押し付けるべきではない
"おまえ"の目的が全てではない
まずはこの基本的な事実から理解してくれ
話しにならないから
0619デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:10:43.24ID:mBxOrkWE
> A「なんのためにDockerを採用したの?」
> B「開発環境構築のために採用しました」

採用と目的 は意味が違う
はい論破w

ジョークかよw
なんでこんな簡単な指摘をせにゃならんのだ
0620デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:11:59.29ID:mBxOrkWE
ほんとさっきからDockerの目的を
違う話にすり替えようとしてるな。
バレバレやで
0622デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:14:12.92ID:mBxOrkWE
A「なんのためにDockerを採用したの?」
B「開発環境構築のために採用しました」
A「開発環境構築してるのは見ればわかる。それを行うに当たって
なんのためにDockerを採用したのか聞いてるんだが?」

普通は後期着替え得される
0623デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:15:15.24ID:RzJcTIeH
>>620
すり替えてるのはAn0DfPZDだな
Dockerの利用目的などいくらでもあるのに、開発目的の1つでしかない高い可搬性を唯一絶対の目的のように、こいつはすり替えようとしている
0624デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:15:16.71ID:mBxOrkWE
例えて言うなら

A「なんのために○○工法を採用したの?」
B「建造物構築のために採用しました」

こう言ってるようなもん
0625デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:21:29.05ID:RzJcTIeH
>>622
A「なんのためにDockerを採用したの?」
B「開発環境構築のために採用しました」
A「開発環境構築してるのは見ればわかる。それを行うに当たって
なんのためにDockerを採用したのか聞いてるんだが?」

B「開発環境構築手段としてはVagrantやローカル環境へのバッチ処理適用などが候補に上がりました。
弊社の置かれる状況を踏まえて、それらを比較検討した上で、これこれこういうメリットがあると判断して、採用しました」

普通はこうなる
比較検討なんかしない、などというバカだったら採用理由にも説得力がなかっただろうね

開発環境に限った話ではないが、何かを決めるにあたって、検討した選択肢と採用した理由は関係者に対して必ず説明するものだ
業務で開発したことが有るならアタリマエのことだと思うが
もしかしてキミ仕事で開発したこと無い?あるいは一人で開発してるとか?
0626デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:28:27.93ID:mBxOrkWE
>>625
> 普通はこうなる

前言撤回かよwwww

俺が間違いを指摘した後に慌てて後付して書くなって
ほんと恥ずかしいやつやなw
だいたい、その「これこれこういう」の中身が目的やろうが?

ちゃんと書けよ。Dockerを使うことで可搬性が高くなるというメリットがあるので
その目的のためにDockerを採用しましたって
0627デフォルトの名無しさん
垢版 |
2018/10/14(日) 00:36:36.30ID:RzJcTIeH
>>626
>「これこれこういう」の中身が目的やろうが?
「これこれこういう」は利用者の状況や課題によって様々
だから比較検討して答えをだすって何度もレスしとるだろうが
いい加減少しは理解してくれ
話しにならないとはまさにこのこと
0628デフォルトの名無しさん
垢版 |
2018/10/14(日) 20:01:17.80ID:TovYdN7f
なんか話が難しくなってきましたね
ひとまず、docker軽いですよ、vagrantに比べて
buildはややかかるけど、終わってしまえば、起動もさくっといきますよ
0629デフォルトの名無しさん
垢版 |
2018/10/14(日) 22:23:03.56ID:mBxOrkWE
何に使えるかと、何のための道具かってのをごっちゃにしてるやつのたわごとだからな。
Dockerはアプリケーションを仮想化するために作られた道具

その道具を使って金儲けができるからって、
いろんなものをごっちゃにしたらダメだって話
0630デフォルトの名無しさん
垢版 |
2018/10/14(日) 22:25:54.86ID:mBxOrkWE
>>628
> ひとまず、docker軽いですよ、vagrantに比べて
vagrantは開発環境を作る道具にすぎない。
Dockerと比べるものじゃない。

比較するならば、ホストマシンでアプリを動かす vs 仮想マシンでアプリを動かすだろ
ホストマシンでアプリを直接実行するほうが、仮想マシン上でアプリを動かすよりも軽い
といわれても当たり前でしか無い
0631デフォルトの名無しさん
垢版 |
2018/10/15(月) 00:07:39.55ID:37aK5NOi
うん、だからdockerの方が軽いんだよね?
当たり前でも何でも実際軽くて便利なんだからいいじゃないか
0632デフォルトの名無しさん
垢版 |
2018/10/15(月) 00:41:31.13ID:9UZy+Ppr
そりゃ仮想マシン使うよりも仮想マシン使わないほうが軽いだろう。
仮想マシン使わないで、普通にパッケージをインストールすれば良い

普通にパッケージをインストールすればいいのに
なぜDockerを使うのか?それこそがDockerを使う目的
0633デフォルトの名無しさん
垢版 |
2018/10/15(月) 18:32:47.56ID:YtsyH3sD
課題を解決する手段が複数ある
それぞれ一長一短で状況により正解は異なる
なので比較検討してどれを採用するか決める
これITに限らず一般常識ね
0634デフォルトの名無しさん
垢版 |
2018/10/15(月) 18:36:41.86ID:9UZy+Ppr
んで、今話してるのは手段ではなくて
Dockerは何をする道具かということ
本質をちゃんと見れないと道具は正しく使えない
0635デフォルトの名無しさん
垢版 |
2018/10/15(月) 18:41:05.65ID:YtsyH3sD
周回遅れだね

Dockerの特性は正しく理解した上で比較検討しようという段階の話をしてるので付いてきて
0636デフォルトの名無しさん
垢版 |
2018/10/15(月) 18:47:15.49ID:9UZy+Ppr
話を逸らすな。
Dockerはアプリケーションを仮想化する道具だって話をしてる
0637デフォルトの名無しさん
垢版 |
2018/10/15(月) 18:55:53.84ID:YtsyH3sD
お気の毒ですがそのような話をしているのはあなただけです
あなたはあなたが話ていることをみんなも話ているように錯覚しているようですが実は違うのです
まずは深呼吸して冷静になってください
会話が成立することを期待して待っています
0639デフォルトの名無しさん
垢版 |
2018/10/15(月) 19:06:03.75ID:YtsyH3sD
>>638
dockerとvagrant(あるいは他の方法論)を比較するという文脈のレスは私のレス以外にも幾つもありますね
比較するのはおかしいという主張はどうやらあなただけのようですが
0640デフォルトの名無しさん
垢版 |
2018/10/15(月) 19:13:31.78ID:CIPQcDr6
docker vagrant 比較
ぐぐったらたくさん出てきた
ちなみに
docker vagrant 比較するのはおかしい
ぐぐったら”おかしい”が除外されて検索された
こりゃ勝負有ったね
0642デフォルトの名無しさん
垢版 |
2018/10/15(月) 19:19:27.50ID:9UZy+Ppr
だいたい、さんざん仮想マシンと比較って言ってくせに
vagrantに言い換えてるし
仮想マシンとvagrantの違いもわかってないようだ
0644デフォルトの名無しさん
垢版 |
2018/10/15(月) 20:30:22.20ID:9UZy+Ppr
間っていうか、LXCはシステムコンテナだから、Dockerで仮想マシンのような間違った使い方を
使い方をしようとしている人は、LXCを使うべきだよ
0645デフォルトの名無しさん
垢版 |
2018/10/16(火) 00:27:22.18ID:8ZLfHmC4
PythonでJupyter Notebook使ったデータ解析環境をPC変更時に新PC上で手動で再現するのが面倒だからDocker上で動かすようにしてる
0646デフォルトの名無しさん
垢版 |
2018/10/16(火) 00:30:53.46ID:JHQMnpCL
Jupyter Notebookというアプリにそのアプリを動かすのに
必要なものを全部まとめてるわけだよね。
それが正しい使い方
0649デフォルトの名無しさん
垢版 |
2018/10/16(火) 21:22:37.51ID:+sj1AQoJ
再現性が必要ない?
それはなかなか斬新ですねw
そコマで頭の悪い意見が出るとは思ってなかった。
0650デフォルトの名無しさん
垢版 |
2018/10/16(火) 22:04:16.59ID:BK7j5HGI
Jupyter Notebookって試行錯誤を効率化するのが目的なんだから、再現性なんてDockerイメージで担保すればいいというのも、それはそれでありうる判断だろう。

環境独立な再現性があればあった方がいいって点には誰も異論はないと思うが、
それよりも試行錯誤の効率性の方が優先される用途もあるってだけの話だな。
0651デフォルトの名無しさん
垢版 |
2018/10/16(火) 22:13:56.47ID:zWgAqWtj
依存性の封じ込めも再現性もvagrantや別の方法でもできるので比較検討が必要
0652デフォルトの名無しさん
垢版 |
2018/10/17(水) 01:10:09.91ID:MUBjx6EB
>>649
依存性の封じ込めも再現性もvagrantや別の方法でもできるので
Dockerを使う理由にはならないってことだよ
0653デフォルトの名無しさん
垢版 |
2018/10/17(水) 18:08:49.39ID:QBZICbug
複数の方法があるけど一長一短なのでツールの特性と置かれてる状況とを見て比較検討する必要があるんだね
0654デフォルトの名無しさん
垢版 |
2018/10/17(水) 19:42:49.89ID:t+3zMNmx
ずーっとってる話だが、
比較検討の話と、ツールが作られた目的を
ごっちゃにするなってことですね
0655デフォルトの名無しさん
垢版 |
2018/10/17(水) 20:01:49.11ID:QBZICbug
発端は>>597-599あたりかな
比較検討の意義についての議論だったのだけど、それが理解できない子も居たようだね
0656デフォルトの名無しさん
垢版 |
2018/10/17(水) 20:06:17.49ID:t+3zMNmx
比較検討するにあたって、
どの道具の目的をちゃんと理解してないと
正しい検討ができないって話やろが
0657デフォルトの名無しさん
垢版 |
2018/10/18(木) 12:14:37.57ID:tcdN1NJq
ここで聞くのが正しいかどうかわからないんですが質問です
やりたいことが2つありまして

1. Vagrantでバーチャルマシン使って開発
2. VPNでリモート環境に接続、そこにあるコンピュータにSSH

この2つは特に関係ない作業です
で、それぞれ単独では出来てるんですが

Vagrantでバーチャルマシンを立ち上げ
192.168.10.10のIPを与えて開発する(LaravelのHomesteadです)

開発終えてvagrant halt(1の作業はここまで)

リモート環境にVPN接続(2の作業開始)

そこにあるコンピュータ192.168.10.14にSSH

としようとすると接続できない、pingも通らない、となっており解決方法を探しております
OSを再起動すると接続出来ます
macOS10.11(El Capitan)です

なにかわかる方いらっしゃいましたら、よろおねです
0658デフォルトの名無しさん
垢版 |
2018/11/28(水) 16:14:53.75ID:ndifwdFb
Dockerって言うのを試したいのだが、
少し調べてみた限りでは、コマンドベースで各種の設定などやるようだが、
Linuxの操作に慣れていない人は使うのは難しい?
0661デフォルトの名無しさん
垢版 |
2018/11/29(木) 23:34:53.34ID:gjHip4g7
GUIしかやってないなら大抵の仮想化ツールは取っ付きにくいだろうな
CUIの勉強しろよ
0663デフォルトの名無しさん
垢版 |
2018/11/30(金) 20:19:16.57ID:S7TbfYM4
ターゲットとなる本番環境じゃなくてポータブル開発環境として使ってる人います?
ローリングリリースのLinux選んでずーっとその仮想育てる感じで
PowershellもMsysもWSLもどうやっても馴染めないよう
0664デフォルトの名無しさん
垢版 |
2018/11/30(金) 23:53:07.83ID:VjmtC3o0
シェルスクリプト・PowerShell の代わりに、VSCode で、Ruby を使えば?

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

日本語では、WSL のirb は、MSYS2 よりも正常に動く
0665デフォルトの名無しさん
垢版 |
2018/12/01(土) 07:43:14.49ID:R+goIYNS
うーん正確な用語がわからない・・

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

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

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

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

その常識に、赤い巨人が挑む!w
0671デフォルトの名無しさん
垢版 |
2018/12/12(水) 19:59:55.07ID:02lWEJYc
VirtualBoxとVagrant を使って開発って
WEBアプリケーション以外にも使われることはあるんですか?

例えば、スマホアプリとか。
0675デフォルトの名無しさん
垢版 |
2018/12/20(木) 07:07:45.57ID:S5A+WF/L
vagrant/terraform
container linux
ansible
docker
kubernetes
Istio
gcp/aws/azure
この辺のキーワード聞くことが多くなってきたが覚えること大杉てしぬ
0676デフォルトの名無しさん
垢版 |
2019/01/22(火) 19:13:09.57ID:C76SXNc4
クラウドでコンテナを運用するとしたら規模の小さめなサービスでもk8sが鉄板なんすか?
0678デフォルトの名無しさん
垢版 |
2019/02/25(月) 14:14:19.25ID:N3uaxGmA
vagrantのguestosをオフライン環境でバージョンアップさせる方法教えてください
0679デフォルトの名無しさん
垢版 |
2019/03/01(金) 01:33:46.52ID:vZN7gNkq
本番運用の環境でDockerCE (Docker for Windows) の Linuxコンテナを使ってるんだけど、
たまにポートフォワードがうんとも寸とも言わなくなることがあるんだけど、そういうもん?

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

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

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

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

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

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

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

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

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

よくよく考えてみるとアホな顧客にエビデンス要求された時に
有料サービスに丸投げした結果を提供してOKもらうことはたびたびあるので
自分でも似た使い方してたなw
自分でそれがエビデンスという強い言葉に値すると思ってないから思いつかないんだなあ。
0692デフォルトの名無しさん
垢版 |
2019/03/03(日) 14:34:26.16ID:PCCGC897
issueだらけだもんなぁ
本番には到底耐えきれないよ
本番で使わないならってんで開発でもDockerを使わなくなる
だから実務で役に立つのはVagrantとAnsibleになる
0693デフォルトの名無しさん
垢版 |
2019/03/03(日) 14:43:33.70ID:LWbZmqMl
>>692
issueの数で判断できるなら、世の中のメジャーなライブラリやフレームワークはみな使えないことになる
0694デフォルトの名無しさん
垢版 |
2019/03/03(日) 15:04:33.53ID:PCCGC897
ライブラリやフレームワークに不具合があってもアプリケーションとしてのテストを通過すれば問題はない
でもDockerみたいなのになるとテストしきれないから安易に使えない
0700デフォルトの名無しさん
垢版 |
2019/04/07(日) 22:47:05.10ID:KmDkztEg
初心者なんじゃがコンテナ内のphpmyadminから別コンテナのMySQL叩くの難易度どれくらい?
0703デフォルトの名無しさん
垢版 |
2019/04/08(月) 21:09:35.64ID:SeD3ldgI
本当かぁ、?何回かネットや本のコピペしてるけどMySQLとphpmyadmin連携取れないぞ、?
0705デフォルトの名無しさん
垢版 |
2019/04/08(月) 22:14:51.00ID:SeD3ldgI
>>704
この後またチャレンジするんだけど皆さん普通に連携取れて出来てるのよね?
本の丸コピが何回やっても動かないし何かMySQLの認証系が怪しいんだが
0707デフォルトの名無しさん
垢版 |
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
0711デフォルトの名無しさん
垢版 |
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
0712デフォルトの名無しさん
垢版 |
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
0713デフォルトの名無しさん
垢版 |
2019/04/20(土) 09:43:35.04ID:4fcRoJkz
クラスタ運用だとボリュームの扱いが難しい

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

どうにかならんかねこのジレンマ
0714デフォルトの名無しさん
垢版 |
2019/04/20(土) 10:01:01.50ID:OSkkX2tB
>>713
だからクラウド使うんだよ

ストレージはクラウドサービスが提供しているものを使う
ストレージ用のコンテナは作らない
0716デフォルトの名無しさん
垢版 |
2019/04/20(土) 11:37:12.99ID:4fcRoJkz
クラウドストレージでも結局は同じなのでは?
例としてS3をVolumeとしてマウントしたとして
このVolumeはローカルストレージのVolumeよりも遅いしパーミッションとかで変なトラブルが起きやすい
この性質はイントラのストレージサービスとクラウドのストレージサービスでそう違いがあるとは思えない
0718デフォルトの名無しさん
垢版 |
2019/04/20(土) 12:04:41.14ID:OSkkX2tB
>>716
だからボリュームとしてマウントしたりしない。

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

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

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

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

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

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

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

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

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

↑アホみたいだろ?

やり方を変えないなら、今までのやり方をするしか無いんだよ。
諦めな
0723デフォルトの名無しさん
垢版 |
2019/04/20(土) 12:44:59.88ID:4fcRoJkz
>>722
設計を見直すと言われても他社製だからな…
従来のようにバックアップとリストアをしっかり整備して多少のリスクを受け入れるぐらいしか思い浮かばん
ダウンタイムはともかく直近のデータロストは怒られそうできつい
0731デフォルトの名無しさん
垢版 |
2019/06/06(木) 12:33:59.71ID:JqHKbft5
5人のチームのローカル開発環境を同じにしたい場合VagrantとDockerどちらが楽だろ?
VagrantfileとDockerfileのどちらが簡単かという話になるのかな?
0732デフォルトの名無しさん
垢版 |
2019/06/06(木) 20:02:59.18ID:CyvVQuy9
そりゃあVagrantだろ
変なトラブルが少ない
開発デスクトップも仮想化できる
環境の再現性がたかい
Linux+Windows混在も楽々

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

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

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

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


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


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

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

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

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

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

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

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

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

使う目的が違うのだから、どちらを使うか?っていう話にはならない
0741デフォルトの名無しさん
垢版 |
2019/06/06(木) 23:02:43.90ID:XICmRaWP
>>738
もう今は本番環境でDockerを使うのは常識

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

開発環境用VM(Vagrant)と本番環境用VM(Vagrant)の
2つを作るのは重いだけ
0742デフォルトの名無しさん
垢版 |
2019/06/06(木) 23:04:50.40ID:XICmRaWP
訂正

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

本番環境用VMといってしまうと、これを本番環境で使うように思えてしまうので訂正
実際の本番環境はVagrantでは作らないので、本番環境そのものにはならない
高い再現性を求めるなら、開発環境でも本番環境でもDockerを使うのがベスト
0743デフォルトの名無しさん
垢版 |
2019/06/06(木) 23:07:20.25ID:XICmRaWP
開発環境と本番環境が違っていても
Dockerコンテナは同じですよーっていうのが
Dockerを使うメリットなわけだ
0748デフォルトの名無しさん
垢版 |
2019/06/06(木) 23:43:28.93ID:XICmRaWP
vagrantは "開発環境を作るためだけ" のものだが
Dockerはソフトウェ開発全般で使う
0749デフォルトの名無しさん
垢版 |
2019/06/06(木) 23:45:35.65ID:P4iafl1G
k8sのdocker依存は解消されたって聞いてたんだけど…?
0750デフォルトの名無しさん
垢版 |
2019/06/06(木) 23:46:54.32ID:XICmRaWP
Vagrantはこれから使われなくなっていくよ。俺はもう使ってない。
ローカル開発環境を同じにしたい場合にはたしかに便利だが、
ローカル開発環境を同じにする必要がなくなってきてる。
そういう意味ではVagrantを使わないほうが良いと言える。
0752デフォルトの名無しさん
垢版 |
2019/06/06(木) 23:51:42.77ID:CyvVQuy9
>>748
Vagrantは本番環境でも使えるしDockerを使わない開発も未だに無数にある
Dockerのメリットは確かに大きいがそれなりのデメリットも同時に抱え込んでしまう
Dockerでやるべき明確な理由がないなら使う必要はない
0755デフォルトの名無しさん
垢版 |
2019/06/07(金) 00:01:11.20ID:AQMF0uU1
Dockerの使い方でも変なやつがいるけど
本来想定してない用途なのに、使えそうだから使おうというのは
その技術を正しく理解してない証拠なんだよな
0756デフォルトの名無しさん
垢版 |
2019/06/07(金) 00:04:50.40ID:ON5ugDpH
VagrantにできてDockerではダメな典型例だとAnsibleなど構成管理ツールの開発・テスト環境を作るときなどがあるね
当たり前だけどOSの様々な機能が制限されるコンテナは仮想マシンの代替にはなりえない
0757デフォルトの名無しさん
垢版 |
2019/06/07(金) 00:10:21.60ID:AQMF0uU1
だからVagrant(というよりVM)とDockerはどちらかを使うものじゃなくて
両方組み合わせて使うものだという話になる。

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

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

>>758
だから君のDocker万能論はちゃんちゃらおかしいということだよ
開発環境は開発対象をよく理解して適切に選ぶこと
全部DockerでOKなんてことはありえない
0760デフォルトの名無しさん
垢版 |
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を使っている。
なるほど、これは良い発見だ!

(独り言)
0761デフォルトの名無しさん
垢版 |
2019/06/07(金) 00:33:40.26ID:AQMF0uU1
>>759
> だから君のDocker万能論はちゃんちゃらおかしいということだよ

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

そんなこと言ってない。

何度も何度もVMと組み合わせて使うって言ってるのに
0763デフォルトの名無しさん
垢版 |
2019/06/07(金) 00:45:32.53ID:ON5ugDpH
そうだな万能論は言いすぎた
しかしそれでも君の主張はDockerありきが前提にっているのは確かだろ
しかし実際にはAnsibleの例のようにDockerを使いにくい環境も存在している
だから君の主張がおかしいということには変わりはない
0764デフォルトの名無しさん
垢版 |
2019/06/07(金) 00:53:40.24ID:AQMF0uU1
>>763
やっぱり素でDockerを理解してないんだな・・・

> しかし実際にはAnsibleの例のようにDockerを使いにくい環境も存在している
Dockerはアプリケーションとユーザーランドを一体化させて
一つのアプリケーションのように仮想化するためのものであって
Ansible(構成管理ツール)とDocker(アプリ仮想化)を組み合わせて使うことがそもそも間違い。

俺はAnsibleとDockerを組み合わせて使うなんて一言も言ってない。
俺の主張?俺が何を主張したっていうんだ?
0765デフォルトの名無しさん
垢版 |
2019/06/07(金) 00:57:44.41ID:AQMF0uU1
>>764の組み合わせて使うっていうのは、

DockerをVM(Vagrant)のようの代わりに使って
DockerでAnsibleなど構成管理ツールの開発・テスト環境を作るという使い方

Ansibleを使ってVMの構成管理を行い、その一つとして
Dockerコンテナを起動するっていう使い方は問題ない。


俺は、DockerでAnsibleなど構成管理ツールの開発・テスト環境を作るという使い方をしろなんて
一言も主張していない
0766デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:00:45.47ID:AQMF0uU1
結局俺じゃなくてお前が

DockerをVM(Vagrant)の代わりに使おうとして
DockerはVM(Vagrant)の代わりとしては使えない!って
独り相撲してるだけじゃんか

俺は最初から組み合わせて使う。両方使う。役割が違うと言ってる。
0767デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:01:19.38ID:ON5ugDpH
>>764
君の主張は自分のレスを読み返したら?
開発環境はとにかくDocker
Dockerなしなんてありえない
それが世界の常識
君は昨日散々そう主張していたよね
そんな主張をしたら例えばAnsibleの開発環境みたいなDockerに向かない環境もDockerで組むのかなこいつはと解釈されても仕方がないよ
0768デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:02:31.60ID:AQMF0uU1
>>767
お前が見返して、どこで言ってるのか指摘してくれ
俺はお前が言ってることを何一つ主張してない
0770デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:04:03.86ID:AQMF0uU1
例として一つ出すなら

>>737
> 開発環境はVagrantで作るが本番環境はAnsibleなどで作る

開発環境はVagrantで作るとはっきり言っている
0771デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:05:19.99ID:AQMF0uU1
>>769
だからそれをお前がやれって言ってる。
お前嘘つきじゃん。さっきからどれもコレも俺が主張してないことを
俺が言ったことにしようとしてさ
0772デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:07:46.29ID:ON5ugDpH
>>770
で、そのレスの後半でDockerを使う話に持っていってるよね
とにかくDocker
Dockerありき
それが世界の常識
それが君の主張
0773デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:09:11.49ID:AQMF0uU1
> で、そのレスの後半でDockerを使う話に持っていってるよね

ぽかーんw

スレの前半でDockerを使わない話してるよね?
お前、スレの後半しか読んでないの?
スレの後半だけで判断しちゃった?w
0774デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:10:05.02ID:ON5ugDpH
>>771
やれもクソも君の目の前のブラウザか専ブラかをちょっとスクロールして見るだけだよ
俺がやることなど何もなく君が自分のレスを見るだけだ
それを俺が代行してやることは物理的にできない
0777デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:14:11.19ID:AQMF0uU1
>>776
何度も何度も何度もVMとDockerは組み合わせて使うと言ってる

お前が、VMとDockerはどちらか一つを排他的に使うものだって
心の底で思ってるから、俺がDockerを使うという話をすると
VMを使わないと言ってるんだって勘違いしてるんだよ。
0778デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:17:08.93ID:ON5ugDpH
>もう今は本番環境でDockerを使うのは常識

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

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

ほーん
Ansibleの本番環境と同じ環境もDockerで作るんだ
なんたってDocker以外で作るのは困難だからなー
それが世界の常識ってやつですかそうですか
0779デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:17:57.25ID:AQMF0uU1
> Ansibleの本番環境と同じ環境もDockerで作るんだ

また俺が言ってないことを言い出した。
0783デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:36:24.78ID:AQMF0uU1
>>780
本番環境を同じ環境をローカルに作る場合
Dockerを使った構成にしないと作るのは困難だって言ってる

本番環境(の多くは)ベアメタルもしくは仮想マシンにLinuxを入れる
ローカルの開発環境はベアメタルにLinuxを入れることは少ない

ローカルの開発環境は
1. Linuxを使う
2. macOSを使う
3. Windowsを使う
4. それ以外

この三種類。2と3は確実に本番環境と違う。1はLinuxで同じだが
ローカルの開発環境には開発ツールが必要なので、これも本番環境と同じになることはない

4.のそれ以外として、1〜3の開発環境を使い、それとは別に本番環境"再現用"VMを作る方法
>>742で書いているように、2つを作るのは重いだけ
そして本番環境はVagrantを使って作らないが、本番環境"再現用"VMはVagrantを使って作るという違いがある
本番環境"再現用"VMをVagrantを使って作ると、Vagrantユーザーがいたりして、本番環境とはやっぱり違う
作成した時期によってパッケージのバージョン等が異なる。
本番環境はVagrantじゃないから同じVagrant Boxを使って環境を合わせることも出来ない。

本番環境のベアメタルもしくは仮想マシンにLinuxを入れて作るものに近づけるには
ローカルの開発環境に用意する 本番環境"再現用"VMも(Vagrantを使わずに)
VirtualboxやKVmやHyperVなどの上に直接作る必要がある。
だけどそれをやったとしてもやっぱりパッケージのバージョンを合わせるのは難しい。

その問題をDockerを使った構成にすることで違いをカーネル部分(ここは高い互換性がある)だけに分離することができる。
カーネル以外のアプリケーション+ユーザーランド、つまりパッケージのバージョンは全く一緒になる
このレベルを実現するにはDockerを使わないと困難だと言ってる
0785デフォルトの名無しさん
垢版 |
2019/06/07(金) 12:34:44.50ID:Ka/jlwAK
ぬるぽ
0787デフォルトの名無しさん
垢版 |
2019/06/07(金) 22:55:03.79ID:wtNNzOUb
そのゲームのプロセスID か何かを取得して、

OS・ディスプレイマネージャーに対して、
そのゲームを最前面に表示するように、命令できないの?
0788787
垢版 |
2019/06/07(金) 22:56:06.04ID:wtNNzOUb
>>787
誤爆です!
0789デフォルトの名無しさん
垢版 |
2019/06/22(土) 17:52:08.66ID:V6ijG4k6
dockerってメモリ4GB だと重いですか?docker使って仮想環境作る勉強したいんですが
0790デフォルトの名無しさん
垢版 |
2019/06/22(土) 18:00:43.74ID:rnpNzk5p
>>789
Linuxで使えば仮想マシンも不要でネイティブに動く
メモリも数MB程度のオーバーヘッドだけですむだろう
0791デフォルトの名無しさん
垢版 |
2019/06/22(土) 18:43:07.03ID:V6ijG4k6
Windows環境なんでwslでubuntuはインストールしたんですけどそのままdocker落として仮想マシン構築する事出来ます?
0792デフォルトの名無しさん
垢版 |
2019/06/23(日) 08:00:41.13ID:P8H0jYp7
Windows 10デスクトップだと4Gは厳しい
仕事で仕方なく使ってるけどメモリ不足で起動失敗が多発する
Windowsコンテナのプロセス分離だけに限定すればいけるかもしれんが…
Winコンテナは興味なくて検証したこともない

WSLでDockerは動かない
次の大型アップデートでWSL 2が実装されるけどそっちではDockerも簡単に動かせる
Docker for WSL 2のサポートも決定事項
こっちの必要スペックはわからん
0793デフォルトの名無しさん
垢版 |
2019/06/23(日) 17:24:00.79ID:p0iHiqR8
今のvirtualbox使ったwindows dockerはクソだと思うが
Docker for WSL 2 は期待していいんでないかな。
0800デフォルトの名無しさん
垢版 |
2019/06/28(金) 07:41:19.81ID:CM5w69Yd
wsl2のアーキテクチャ、hyper-v必須に見えるんだけどhome切り捨てか?
0801デフォルトの名無しさん
垢版 |
2019/06/28(金) 08:25:14.99ID:gNXTX/eF
はぁ、homeも対応するって発表しただろ
hyper-vのサブセットを提供するって。少しは調べろよ
0802デフォルトの名無しさん
垢版 |
2019/06/28(金) 11:26:39.93ID:fSH27hWb
>>801
マジかサンキュー!
俺の調査完了だぜw
0803デフォルトの名無しさん
垢版 |
2019/06/29(土) 14:03:16.24ID:LzChV7lM
Windows10 Home
HP ENVY Ryzen7 3700U を使用しています。

https://dotup.org/uploda/dotup.org1884129.png
BIOSの方で仮想化設定をONにして、タスクマネージャーで確認しても「仮想化 有効」に
なっているのにかかわらず、Docker Quickstart Terminal を起動すると
「仮想化がenableになっていません。」とエラーが出て終了してしまいます。
どうすれば通常通り起動できるようになるでしょうか。
どなたか心当たりある方いらしたらお教えいただけないでしょうか・・・。
0807デフォルトの名無しさん
垢版 |
2019/07/06(土) 00:04:09.57ID:qTbAmWeM
dockerのimageファイルをブラウザからダウンロードできるサイトないですか?

特殊なインターネット接続なし環境で構築しており,インターネット接続環境はブラウザしか起動できない状況です。
0809デフォルトの名無しさん
垢版 |
2019/07/06(土) 04:48:09.21ID:O76mcSig
っていうか、業務に必要なことなら、必要って言えばいいだろ
仕事で苦労してる責任が管理者にあるなら管理者に責任を押し付けろや。
コストがあがったのはあんたが認めないからです。責任はあんたにありますって
0810デフォルトの名無しさん
垢版 |
2019/07/06(土) 07:50:05.40ID:lAN9BSHL
小さい組織の末端の開発者ならそれでいいかもしれん
大きな組織だと特定の開発者のコストを下げても必ずしも全体のコストが安くなるわけではない
0811デフォルトの名無しさん
垢版 |
2019/07/06(土) 08:21:03.64ID:O76mcSig
大きな組織だと、その判断を末端の開発者がしてはいけない。

つまり、言いたいことは、"上に投げつける前に個人の判断で諦めるな" ということ

上に投げつけて、上の責任にするんだよ。
0812デフォルトの名無しさん
垢版 |
2019/07/06(土) 08:44:23.73ID:auWtVfNl
>811
理屈はわかるがそんなこと実際にするのはかなり丁寧に組織的根回ししないと無理だろ。
そんなことができるくらいならこんなとこに相談こねーわ。
0814デフォルトの名無しさん
垢版 |
2019/07/06(土) 09:17:32.46ID:lAN9BSHL
小さい組織でやってるとこういう苦労はわからないものさ
責任が小さいから自由もある
0817デフォルトの名無しさん
垢版 |
2019/07/06(土) 11:40:56.15ID:O76mcSig
解決するかしないかは関係ないんだよ。
上の責任にしろって話。

責任を押し付けないから、上は適当に仕事するんだよ。
おめぇの責任だって言えば上は逃げられなくなるからな。
0818デフォルトの名無しさん
垢版 |
2019/07/06(土) 11:49:06.19ID:lAN9BSHL
与えられた裁量の中で成果を出すことが求められている
もっと権限をよこせよこさないならうまくいかないぞそうなったらおまえのせいだかんななどと喚くのは無能だ
組織で働いたことがねえんだろうなあ
0819デフォルトの名無しさん
垢版 |
2019/07/06(土) 13:09:27.76ID:O76mcSig
> 与えられた裁量の中で成果を出すことが求められている

どんな校則でも絶対に守る生徒 VS 校則の内容に疑問を持つ生徒

ほんとなぁ、日本の学校教育の失敗やで。
意味のないルールでも絶対に守れ。疑問を持つことは許さない
という教育をしてるからこうなる。
0820デフォルトの名無しさん
垢版 |
2019/07/06(土) 13:18:23.10ID:lAN9BSHL
末端の開発者が抱くような疑問はとっくに上が検討済み
それ以外の事も諸々含めて選んだ結果が末端の開発者に降りてくる
だから上からしたら責任はあんたにあります(キリッ)とか言われても何を言ってんだこの雑魚はとしか思えんよ
もともと責任ある立場なんだからさ末端の開発者と違って
0821デフォルトの名無しさん
垢版 |
2019/07/06(土) 13:27:42.39ID:O76mcSig
「末端の開発者が抱くような疑問はとっくに上が検討済み」
という思い込み

そして前提(時代)が変わってるもルールだけを残す。

ルールの存在理由を考えない。
ルールを守ることが目的となってる。
0822デフォルトの名無しさん
垢版 |
2019/07/06(土) 13:32:36.26ID:lAN9BSHL
>>821
>という思い込み
という末端の思い込み

>ルールの存在理由を考えない。
小さい組織の末端で働くと組織視点でルールの存在理由を考えない
なので自分の都合・不都合だけ考えてルールを否定したがる
0823デフォルトの名無しさん
垢版 |
2019/07/06(土) 13:43:30.71ID:O76mcSig
> なので自分の都合・不都合だけ考えてルールを否定したがる

当たり前だろw
言わなくても、他人が自分の都合をわかってくれるとでも思ってんのか?
0824デフォルトの名無しさん
垢版 |
2019/07/06(土) 13:58:40.05ID:lAN9BSHL
上は末端の開発者が考えることぐらいはだいたいわかってるよ
わかった上で様々な要素を検討して
開発者には悪いけど多少苦労してもらい集団としての利を取ろうと決定したの
末端の意見なんてのは上から見るととっくに処理済なんだよ
蒸し返されても困る
0825デフォルトの名無しさん
垢版 |
2019/07/06(土) 14:51:35.13ID:O76mcSig
> 蒸し返されても困る

理由が書いてないルールは蒸し返されてしかるべきだし
理由が現状とあってないルールは改善すべき

ほんとな。この理由が書いてないのが、ルールだけが残る悪い典型例だよw

靴下は白でなければなりません!
(理由は?)

理由が書いてない校則が多い
0828デフォルトの名無しさん
垢版 |
2019/07/06(土) 21:48:53.04ID:auWtVfNl
上がそこまで理解力あったら7payみたいなことは起きんわ。
現実見ないと幸せそうでいいよね。
0829デフォルトの名無しさん
垢版 |
2019/07/06(土) 22:15:52.49ID:TeKNePWD
うちの会社もフィルタリングはされてるけど、
正当な理由つきで解除申請すればホワイトリストに登録してくれて
アクセスできるようになるよ。

合理的判断のできる会社ならこれが当たり前だし
それができない会社にいるなら
奴隷の鎖自慢なんかしてないでさっさと転職した方がいい。
不合理がまかりとおるのが当たり前になった会社なんて
長期的に見れば没落するに決まってるから。
0831デフォルトの名無しさん
垢版 |
2019/07/17(水) 07:53:46.72ID:CjuPNITa
Dicjerfileでイメージを作成したいのですが
(コマンドはMacですが、私はWindows10でやっております。)

# alpine(軽量なLinux)をベースイメージとして
FROM alpine

# 作業ディレクトリの名前をreact-appとして
ENV wkdir react-app

# /usr/root/react-app を作業ディレクトリとして
WORKDIR /usr/app/$wkdir

# ディレクトリ"reactAppOnDocker"をボリュームとして
VOLUME reactAppOnDocker

# apk(alpineでのパッケージマネージャー)でnodejsとかインストールして
RUN apk add nodejs
RUN apk add npm
RUN npm i -g create-react-app

# shを実行する
ENTRYPOINT sh

作業ディレクトリを Windows10 D:/prog/docker/ に指定したい場合は
上記のWORKDIRを D:/prog/docker/$wkdir にするで合っていますか?
一応Imageは作成できたのですが、WORKDIRが上手く作られていない気がしまして・・・
0832デフォルトの名無しさん
垢版 |
2019/07/17(水) 08:54:52.34ID:ycSiezB+
WindowsでVOLUMEは鬼門・・・

はいいとしてWORKDIRはDockerコンテナ内のパス。
単にalpineの中でmkdirしてcdしてるようなもんだよ。
だからWindowsなんて関係ない。DockerfileはどのLinuxでもMacでも同じものが
使えるんだから、そんなWindowsの固有の情報なんて出てこない
0833デフォルトの名無しさん
垢版 |
2019/07/19(金) 03:11:40.54ID:X9aaaJRs
>>832
根本的な部分を忘れていました・・・全てDocker内のLinuxで完結しているのですね
ちゃんと作れるようになりました
ありがとうございますm(__)m
0834デフォルトの名無しさん
垢版 |
2019/07/31(水) 22:03:01.15ID:2Qswnptj
Dockerってcron使えるようになりました?
前使ってた時は相性悪かったんですが
0835デフォルトの名無しさん
垢版 |
2019/08/03(土) 10:08:06.93ID:CPHAUpDJ
組み込み機能でコンテナ内部で走らせるプロセスをyamlで管理できたら便利だと思う(composeのような雰囲気で)
supervisorは設定ファイルiniでキモいしちょっとしたエントリー拡張のためにsupervisorやentrykitを入れるDockerfile書くのめんどくさいよ
0836デフォルトの名無しさん
垢版 |
2019/08/03(土) 12:03:27.90ID:eOXqQaf9
なんでもかんでもYAMLってやめてほしいわ

手続き的に処理するものをYAMLで書いて、YAMLで書いた順番通りに実行します。
ifもループも書けますとかYAMLという設定ファイル形式の使い方を間違ってるとしか思えんわ

> ちょっとしたエントリー拡張のためにsupervisorやentrykitを入れるDockerfile書くのめんどくさいよ

お前が必要なのはYAMLじゃない。

YAMLでsupervisorやentrykitを入れるコードを書きたいわけじゃないだろ?
お前が本当に必要としてるのは、1コマンドでsupervisorやentrykitを入れるコードだよ。

コンテナ内部で走らせるプロセスを
YAMLでrun: 'process' と書こうが、Dockerfileで run process と書こうが
どちらも何も変わらんだろ
0837デフォルトの名無しさん
垢版 |
2019/08/03(土) 12:10:05.93ID:eOXqQaf9
あと supervisor が直接YAMLという設定ファイルに
対応するって話だったらなんの文句もないが、

supervisor開発者と関係ない第三者が、YAMLからiniへの
変換フィルタ作って、ほら、iniをYAMLで書けます。
supervisorのiniのあの項目は、私が作った変換フィルタではコレに対応します。
どれがどれに対応するか覚えて下さい!そうすればYAMLで書けます!

ってアホらしいと思う。supervisorのiniが変われば、
そのどこの馬の骨が作ったかもしれない変換フィルタまで
バージョンアップしないといけないし、変換フィルタの作者が飽きればそこまで
単に設定ファイルの形式を変換するだけの行為に意味ないよ

なんでそうみんなYAMLで書いて第三者が作った変換フィルタのバグや非対応の項目で
悪戦苦闘したがるかね? ネイティブの設定ファイルを使えばいいじゃん。
0838デフォルトの名無しさん
垢版 |
2019/08/03(土) 14:13:39.93ID:CPHAUpDJ
yamlで書ければ複数プロセスの設定が書きやすくなるだろうな
イメージ的にはこういうの

run:
..foo:
....command: foo a b
....restart: always
....after: bar
..bar:
....commad: init c d
....once: true
..baz:
....command: backup e f g
....when: 00 00 * * *

これをサポートなしでやろうとしたら結構めんどくさいよ
サポートあれば簡単だし起動関連の設定が同じ所に集まるから可読性も上がる

docker中心にみたらsupervisorがどこの馬の骨かわからん
公式にサポートされるのとサードパーティツールで補完できるのはやっぱ違うよ
公式ならシームレスでコンパクトにまとまるから使いやすくなるしあれもこれもと手を出さずに済む

変換フィルタの利点は抽象化と構文の統一化かな
外部リソースを扱うプログラムを書く時と同じだよ
設定がいろんな形式であちこちに分散するより纏めて同じ形式で書けるほうがいい
0839デフォルトの名無しさん
垢版 |
2019/08/03(土) 14:32:11.81ID:eOXqQaf9
> これをサポートなしでやろうとしたら結構めんどくさいよ

だから必要なのは「サポート」であってYAML形式じゃないだろ

> 設定がいろんな形式であちこちに分散するより纏めて
設定をまとめたいなら、設定ファイルをディレクトリにまとめればいいだけ
そして適切な場所にコピーするだけだろ。


> 同じ形式で書けるほうがいい
理由は?
0840デフォルトの名無しさん
垢版 |
2019/08/03(土) 14:42:55.01ID:CPHAUpDJ
>>839
まあ形式はyamlでなくてもいいけどyamlが妥当だろ
composeやswarm、k8sでも採用してるしdockerユーザーには馴染み深い

まとめる作業もコピーするのも面倒なので却下
それにまとめてもファイルは分割されてるだろ
suprvisor本体、各プロセス、起動ヘルパースクリプト、その他もろもろ
はぁ…ダルっ

同じ形式で書ければ構文を覚えなくていいから楽だしプログラム的にも扱いやすくなる
広く普及してるフォーマットなら形式が違くてもまだマシだが
たまにオリジナル形式で作っちゃうバカがいるから呆れる
0841デフォルトの名無しさん
垢版 |
2019/08/03(土) 15:03:33.81ID:eOXqQaf9
>>840
> まあ形式はyamlでなくてもいいけどyamlが妥当だろ

YAMLが妥当かどうかの話じゃなくて、ネイティブの設定ファイル形式を
第三者が作ったツールを使ってYAMLで書くのがアホだっていってるんだよ。

なぜかと言うと信頼性がないから。YAMLで書いたものが
本当に設定ファイルに正しく反映されているのか?
新しい機能に対応できてるのか?トラブルが合ったときその原因はどこにあるのか?
新たな問題が起きる層を増やしているだけ

設定ファイルの形式はなんだって良いだろ。設定項目の意味を覚えるのは
どっちだって同じことで、YAMLかそれ以外かの「形式」を覚えるのはなんの苦労もない

> それにまとめてもファイルは分割されてるだろ
じゃあ一つのファイルに、特定の区切り文字で区切って、結合すれば?

必要なのは、その結合設定ファイルの分割を「サポート」するツールであって
YAML以外の設定ファイル形式を理解できない
(からネイティブの設定ファイルが読み書きできず、トラブルがあってもYAML経由じゃなきゃ対応できない)
ような初心者のためのツールじゃないだろ

> たまにオリジナル形式で作っちゃうバカがいるから呆れる
suprvisorの作者にでも言ったら?僕はYAML形式でしか設定ファイルを読み書きできないので
YAML形式に対応してくださいってw
0842デフォルトの名無しさん
垢版 |
2019/08/03(土) 17:32:10.41ID:6VgdIlHS
そういうのまだ生き残ってたのか。
新規のDSLは否定しまくるくせにMakefileは不問だったりするんだよな。
0843デフォルトの名無しさん
垢版 |
2019/08/03(土) 18:19:12.64ID:eOXqQaf9
1. DSLの話はしていない
2. Makefileは用途が違う
3. お前はMakefileも否定してるのか?
0844デフォルトの名無しさん
垢版 |
2019/08/03(土) 19:02:06.52ID:+6ISjjVu
>>841
信頼性に対する考察が足りんな
抽象化と記法の統一化で設定が簡単になる
ということはミスが減るんだよ
広く使われるラッパーが間違えるより人が間違える確率の方が高い
トータルで見ると信頼性が上がる
プログラム書いてる人間なら自然とこういう考え方が身につく筈なのだがね?
君はアセンブラで何でも書いてしまうタイプなのかな?

形式を覚えるのは面倒だ
君が何と言おうとね

区切り文字で結合w
勢いで書いちゃったけど流石に自分でもこれはないわーあーやっちゃった、とか今、思ってるでしょ?

オリジナルってのは広く普及してないフォーマットの事な
別にyamlには限らないよ
jsonでもxmlでもね
0845デフォルトの名無しさん
垢版 |
2019/08/03(土) 19:06:12.83ID:+6ISjjVu
ところで君はネイティヴにこだわってるけど
ということはDockerネイティヴのコンテナ内プロセス管理の仕組みを用意した方が良いということになるな
馬の骨が作ったサードパーティツールよりネイティヴサポートの方が良いのは確かにそうだね
0846デフォルトの名無しさん
垢版 |
2019/08/03(土) 19:25:54.27ID:eOXqQaf9
> 抽象化と記法の統一化で設定が簡単になる
> ということはミスが減るんだよ

イミフ。アプリが要した設定方法を使うほうが
一番広く使われてる方法で、一番設定が簡単だろ

お前アプリのドキュメント読んでるか?
そのアプリのドキュメントにどういうやり方で
設定しろって書いてあるよ?

> 勢いで書いちゃったけど流石に自分でもこれはないわーあーやっちゃった、とか今、思ってるでしょ?

俺が言ったことを復唱するだけで、何一つ反論しないのなw

> ところで君はネイティヴにこだわってるけど

アプリのドキュメント通り。公式にやり方のことだが?
Dockerで言えばDockerfileを使ったやり方。

一番広く使われてるだろうが。
0849デフォルトの名無しさん
垢版 |
2019/08/03(土) 20:20:07.16ID:+6ISjjVu
>>846
でそのDockerfile使った方法がクソッタレだから馬の骨がサードパーティツールとか使い出してしまった
これは明らかに公式の失態だな
さっさとマルチプロセス管理の仕組みを提供すべきだった
0851デフォルトの名無しさん
垢版 |
2019/08/03(土) 20:22:53.38ID:eOXqQaf9
> でそのDockerfile使った方法がクソッタレだから馬の骨がサードパーティツールとか使い出してしまった

あぁ、出すやつは出すだろうな。
んで、使われてるのか?w
誰も使わんだろ
0853デフォルトの名無しさん
垢版 |
2019/08/03(土) 20:26:50.56ID:eOXqQaf9
結局、YAMLから公式設定ファイルへのコンバーターを使った所で
何もメリット無いわけ

みんな公式の設定ファイルを読み書きできるだろ?
(できなかったらどうやってそのアプリの動作検証をやったというのか?)

公式のドキュメントを見て、使い方を覚えて、

さあ、あとはYAMLから変換するツールの使い方の勉強だ!
対応表見るぞー!あれがこれに対応してぇ、こう書けば、こういう設定ファイルが出力されてぇ
こういう設定するにはYAMLでどう書くんだ!くそーうまく出力されない!

何がしたいのかさっぱりわからない
0854デフォルトの名無しさん
垢版 |
2019/08/03(土) 20:31:39.00ID:+6ISjjVu
>>852
セルフカウンター乙

>>853
そこから間違ってるよ
公式見なくてもできるのが優れたラッパーだ
1対1で変換しただけのような二流ラッパーの話はしていないので謹め
0855デフォルトの名無しさん
垢版 |
2019/08/03(土) 21:02:22.94ID:eOXqQaf9
> 公式見なくてもできるのが優れたラッパーだ

お前の言う優れたラッパーってどれよ?w
それは一対一で変換しないんだろ?
そのラッパーにはラッパー特有のトラブルや制限が一切ないんだろう?
さて、優れたラッパーなんて存在するかなーw
0857デフォルトの名無しさん
垢版 |
2019/08/03(土) 21:06:56.28ID:k1ZymNgl
>>853
某エディタのAnsible拡張を導入したらオートコンプリートが効いてこりゃ便利!と感じたがメリットじゃなかったのかコレ?
0859デフォルトの名無しさん
垢版 |
2019/08/03(土) 21:14:05.18ID:eOXqQaf9
>>857
オートコンプリートなら別にAnsibleとは無関係に使える。
例えばDockerfileのオートコンプリートだって存在する。

まああれも第三者が作ってるから、公式のバージョンアップに
ついていけないところがあったりで不完全なところがあるんだが、
オートコンプリートなら補完されないってだけで別に大きな問題にはならんな
0860デフォルトの名無しさん
垢版 |
2019/08/03(土) 21:17:17.90ID:+6ISjjVu
>>855
極論マンw
一切ないとか言ったら何も使えんわ
お前本当にエンジニア?
世界中で実践運用耐えうるぐらいには問題なく使えるよ

>>856
お前は全てのバグを踏み抜く奇跡の体現者かよw
実際に遭遇して問題が表面化して解決もできないなんてバグは滅多にない
ラッパーなら迂回路はいくらでもあるからな
お前が大好きな本家の設定がバグってたらほとんど打つ手ないけどな
0861デフォルトの名無しさん
垢版 |
2019/08/03(土) 21:22:16.09ID:eOXqQaf9
> 一切ないとか言ったら何も使えんわ

だからそういう間に入って変換するだけのものは
使わないほうが良いって言ってんだろ

公式が提供している、標準のやり方を使えばいいだけ


> お前が大好きな本家の設定がバグってたらほとんど打つ手ないけどな
本家がバグってるのをラッパーで回避できるわけ無いだろw
もし回避する方法があるなら、その方法をラッパーを使わずにやればいいだけだし

俺が言ってるのは公式が提供している標準のやり方をしろというだけ
間に変な変換ツールを入れて、その制限にぶち当たって悩まなくて良くなる
0863デフォルトの名無しさん
垢版 |
2019/08/03(土) 21:31:23.14ID:+6ISjjVu
>>858
buildargsを使う
修正してモジュールにコミットする
シェル系モジュールを使う

回避する方法がいくらでもあるから安心だなぁ
0865デフォルトの名無しさん
垢版 |
2019/08/03(土) 21:37:49.05ID:+6ISjjVu
>>861
飛行機落ちるかも怖いから乗らないって駄々こねる子供と同じだなこりゃ
大人はメリットもリスクも比べて飛行機に乗る

なんかあったら打つ手なしの飛行機じゃねえんだからリスクはさらに安く見積もって良い
ちょっとでもリスクあったら全否定ってw
本当にアセンブラマンなのかこいつ
今はまだある程度正気のようだがそのうちコンパイラも信じないとか言い出しそうだ
0866デフォルトの名無しさん
垢版 |
2019/08/03(土) 22:09:24.60ID:eOXqQaf9
>>863
お前の仕事は、回避することかw

>>865
間に挟めてトラブルを引き起こすツールに
メリットなんか無いじゃんw
0867デフォルトの名無しさん
垢版 |
2019/08/03(土) 22:10:17.26ID:eOXqQaf9
なんども言うが、公式のやり方をすれば
間に挟めるツールのトラブルがまるまるなくなる

非公式のやり方じゃなくて、公式のやり方をしろと言ってるだけ
0869デフォルトの名無しさん
垢版 |
2019/08/03(土) 22:26:01.09ID:+6ISjjVu
>>866
仕事は別だ
ごく稀に回避が必要な時にわずかな労力で回避するというだけのことだ
たったそれだけの事を過剰に恐れて便利なツールが中でやってることを全部自前でやるなんてよっぽど暇なのかな
まあ車輪の再発明も仕事といえば仕事か
0871デフォルトの名無しさん
垢版 |
2019/08/03(土) 22:56:40.59ID:eOXqQaf9
> たとえとしては十分だ

的外れだからな。
所詮「第三者が作った設定ファイル形式のコンバーター」は
トラブルが起きたら変換後のオリジナルの設定ファイルを見なければ話にならん
0872デフォルトの名無しさん
垢版 |
2019/08/03(土) 22:57:33.53ID:eOXqQaf9
> たったそれだけの事を過剰に恐れて便利なツールが中でやってることを

ん?それってシェル系モジュール=シェルスクリプトでできる程度のことでしょ?w
0873デフォルトの名無しさん
垢版 |
2019/08/03(土) 23:06:48.06ID:+6ISjjVu
>>871
外れてないぞ
お前の意見は「データを抽象化、容易化するのは無駄(実際には無駄じゃなくメリットはある)で変換器の変換バグがあるかもだからアトミックなまま使え」だからな
機械語コードとコンパイラにもピタリと当てはまるな
0874デフォルトの名無しさん
垢版 |
2019/08/03(土) 23:10:57.32ID:+6ISjjVu
>>872
それってアセンブラでもできることでしょう?

ただ出来ると簡単に出来る、うまく出来るは違うことなんだな
だから高級言語が発達した

設定も同じことだ
0875デフォルトの名無しさん
垢版 |
2019/08/04(日) 01:24:31.62ID:2JKmG3Fw
>>873
俺の意見を間違えてるw

「不要な第三者が作った質の悪く機能不足な変換ツールを使わずに
アプリの開発者の想定通りの使い方をしろ」が俺の意見だ
0876デフォルトの名無しさん
垢版 |
2019/08/04(日) 01:25:43.22ID:2JKmG3Fw
>>874
設定ファイルは同じじゃない。

YAMLで設定を書いたら、できることが減ってバグが増えてる。
それに対してメリットがない。
0877デフォルトの名無しさん
垢版 |
2019/08/07(水) 02:02:44.08ID:wfV3IAlm
長いので2つに分割します。(1/2)

toolboxからコンテナを作れたまでは良いのですが、共通ファイルを作った上で、
コンテナ内のディレクトリにcreate-react-appでunk20というReactディレクトリを生成しようとしても、エラーが表示されで作れなくなりました。
途中まではWindowsの方の共通フォルダdocker-common内にunk20というフォルダが生成されているのですが、
以下のコードのnpm ERR!が出るとunk20フォルダごと削除され消えてしまいます。
ちなみに、共通フォルダを設定していない状態ですと、create-react-appでReactディレクトリはちゃんと作られ、localhostで接続すると問題なくブラウザにも表示されます。
node.jsとnpmは最新版にしております。
0878デフォルトの名無しさん
垢版 |
2019/08/07(水) 02:03:07.70ID:wfV3IAlm
PS D:\programming\docker> docker run -it --name my-first-docker-app-20 -p 3000:3000 -v //d/programming/docker-common:/docker-common react-env-2/docker-common
(コンテナ作成 & コンテナ内に入る)

create-react-app unk20(create-react-app コマンドでunk20というReactディレクトリを作る)

Creating a new React app in /docker-common/unk20.
(ここで、Windows側のdocker-commonファイル内にもunk20というファイルが生成される)

(Reactを生成中)
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts...

(ここら辺りまで順調に進んでいたのですが、以下でエラーメッセージが表示される)
npm ERR! path /docker-common/unk20/node_modules/@hapi/topo/node_modules/@hapi/hoek/package.json.769352676
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/docker-common/unk20/node_modules/@hapi/topo/node_modules/@hapi/hoek/package.json.769352676'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-08-06T16_31_06_826Z-debug.log

Aborting installation.
npm install --save --save-exact --loglevel error react react-dom react-scripts has failed.

Deleting generated file... node_modules
Deleting generated file... package.json
Deleting unk20/ from /docker-common
Done.
(unk20ディレクトリが削除される)
0879デフォルトの名無しさん
垢版 |
2019/08/07(水) 02:03:56.17ID:wfV3IAlm
最後までお読みいただきありがとうございました。
どなたかわかるかたいらしたら宜しくお願い致します・・・。
0885デフォルトの名無しさん
垢版 |
2019/08/24(土) 11:10:34.44ID:lCI+FPsg
helmのテンプレートってすごく汚くて読みにくい
うまくYAMLにするためにインデント数を`Indent 12`みたいにしてテンプレートで指定とか正気かよ
なんか良い代わりのやつ無いの?
0888デフォルトの名無しさん
垢版 |
2019/08/25(日) 00:58:14.70ID:VV5KPKj8
臨時雇い要員にもdockerを使わせたいのだけどよけいな権限は与えたくない時はどうすればいい?
ホストもコンテナ内も一般ユーザーのみ許可できればいいのだけどそんなことできんのかね
0889デフォルトの名無しさん
垢版 |
2019/08/25(日) 03:53:54.44ID:hoACBN+G
>>888
その臨時雇い要員に専用のパソコンを与えれて
そのパソコンは自由に使っていいけど、本番環境へのアクセスは禁止すればいい
0890デフォルトの名無しさん
垢版 |
2019/08/25(日) 07:11:30.55ID:VV5KPKj8
>>889
仮想端末を含めて専用のPCを用意することが出来ません
複数名でログインする端末です
機密情報を扱う別のユーザーと共有してます
0891デフォルトの名無しさん
垢版 |
2019/08/25(日) 07:27:40.02ID:G4x5ZGgB
> 仮想端末を含めて専用のPCを用意することが出来ません

言い換えると、あなたの会社でまともな開発はできません。ということ
自分で、まともな開発はできないと結論を出してるんだから、そこで終わりだろう。
0892デフォルトの名無しさん
垢版 |
2019/08/25(日) 07:29:21.71ID:G4x5ZGgB
だいたい、専用のPCを用意できないって
単に金が無いって言ってるだけじゃないか

金がないです。どうしたらいいですかと言われても
借金でもすれば?で終わる話
0893デフォルトの名無しさん
垢版 |
2019/08/25(日) 07:38:33.38ID:G4x5ZGgB
給料を出だないほど金がないなら話は別だが
パソコンなんて数万円程度で買えるのにのに「できない」
なんてことはありえない。ようするにやる気がないだけ。

言葉は正しく使え。専用のPCを用意することができないんじゃなくて
専用のPCを用意したくない。が正しい言葉だ。

機密情報も、適当でいいって思ってるだろ。
機密情報に関してきっちりしているなら専用のパソコンに物理的に分ける。
パソコンがとても高価だった時代ならまだしも、今の時代に複数で共有なんて危険なことはしない。
個人専用のパソコンを与えてない時点で、セキュリティはザルでしかない。

自己を認識してないようだからはっきり言ってやる。
お前のところは機密情報を扱う資格がないし、守ることすら出来ない。
大切なものを守る意識も欠けてるし、やるべき正しいこともわかっていない。
今何も問題が起きてないのは運がいいだけだ。
0895デフォルトの名無しさん
垢版 |
2019/08/25(日) 07:45:18.41ID:G4x5ZGgB
>>894
例えば10階建てビルを作る技術はある。
みんなそれを作るための技術と道具を持ってる。

お前は、クレーンがないんです。
技術的に不可能ということでしょうか?と聞いてる。

技術的に不可能じゃなくて、クレーンを買うことができないことが
出来ない理由だっていってんの。ちゃんと認識しろって
0896デフォルトの名無しさん
垢版 |
2019/08/25(日) 07:46:47.45ID:G4x5ZGgB
目的を達成する方法はいくつもあるが
「金が無い」なら、無理じゃねと言うしか無い
0902デフォルトの名無しさん
垢版 |
2019/08/26(月) 00:04:01.79ID:JShuaBEZ
個人でDockerを入れてそこで自己完結させればいいだけだろ。サーバーからコンテナのコピーで済む話。

buildをユーザ権限でやるならk8sの使えば行けるが、会社と担当者のITリテラシーレベル低そうだし諦めればw
0903デフォルトの名無しさん
垢版 |
2019/08/26(月) 00:50:09.55ID:rnlkvQrj
>>902
セキュリティやってる気になってる会社には無理だろ
機密情報を扱う別のユーザーと共用してるパソコンなんて
正気の沙汰じゃない。どうせアップデートもしてないだろうし。
セキュリティ意識ゼロ
0904デフォルトの名無しさん
垢版 |
2019/08/26(月) 01:31:32.75ID:JShuaBEZ
コンテナ内というのが意味不明だな。
ビルドでユーザー作れば当然管理者権限なしでも入れるが、dockerでやる事なのだろうか。

中に入る→出来る
ビルド→出来る
docker コマンド→別グループ作れば可能だが実質su

dockerはアプリ動かすツールであって、管理者以外が共有PCで立ち上げ必須な用途には向かない。巻き添えで常駐コンテナに影響するからだ。

PCに入ったあと、Dockerコマンドで機密情報を操作するコンテナを動かすルールなのだろうか。

企業によくいる、自分は詳しいと思いたい素人が管理してる感溢れていて良い。
0905デフォルトの名無しさん
垢版 |
2019/08/26(月) 02:35:23.25ID:rnlkvQrj
>>904
かんたんなこと。
なんちゃってセキュリティだから決まってるのは
「root権限は禁止」

これだけ
0906デフォルトの名無しさん
垢版 |
2019/08/26(月) 02:35:28.97ID:rnlkvQrj
>>904
かんたんなこと。
なんちゃってセキュリティだから決まってるのは
「root権限は禁止」

これだけ
0907デフォルトの名無しさん
垢版 |
2019/08/26(月) 06:29:32.37ID:fuirL3l0
お前らってわからない時の言い訳はいつも饒舌だよねぇ
質問には答えられないくせにさw
0908デフォルトの名無しさん
垢版 |
2019/08/26(月) 06:47:45.57ID:fuirL3l0
言い訳というのはちょっと違ったか
わからないことを誤魔化すためのマウンティングになると饒舌
これが正確だな
0909デフォルトの名無しさん
垢版 |
2019/08/26(月) 08:28:14.69ID:JShuaBEZ
>>907
>>904に答え書いたでしょ。
buildの方はk8sやローカルリポジトリがいるのでかなり難易度高め。k8sが管理者権限だと無理だな。

ユーザー作る方は難しくない。

rootが嫌ならユーザーをdockerに入れると良い。実質suだが。他は不可能。

上2つはdockerfile書けるのが前提で、ここに書いて済むレベルの話ではない。

頑張れw
0910デフォルトの名無しさん
垢版 |
2019/08/26(月) 08:43:07.72ID:UMd5mz1m
権限ちゃんと分けたかったら
Dockerじゃなくて普通にVM使うべき。
メモリーの必要量は増えちゃうけど。
0911デフォルトの名無しさん
垢版 |
2019/08/26(月) 12:49:17.98ID:NWn2YSWg
「VM使ってもroot使ったダメなんですー」
「個人にパソコンを与えたとしてもrootは禁止なんですー」
「うちってセキュリティしっかりしてるでしょ?」
0912デフォルトの名無しさん
垢版 |
2019/08/26(月) 15:55:14.47ID:aBrnjXrt
>>909
呆れる
k8sの話はしてないしローカルDockerの話してんの
ユーザーDockerに入れても意味ないだろ

>>910
業務上の都合で使えません

>>911
答えられないなら無理してレスしないでいいぞ?
見ててちょっと気の毒だ
0913デフォルトの名無しさん
垢版 |
2019/08/26(月) 15:58:57.84ID:NWn2YSWg
× 業務上の都合で使えません
○ 業務改革したくないです。やる気ないです。
0914デフォルトの名無しさん
垢版 |
2019/08/26(月) 16:03:12.47ID:NWn2YSWg
新しい道具を入れたら、それだけで改善されるって思ってるバカが多いからな
新しい道具に最適になるように「やり方」を変えないと、何もかも無駄になる。
0915デフォルトの名無しさん
垢版 |
2019/08/26(月) 22:09:26.41ID:80nRq+Qr
>>912
dockerでは無理。k8sはコンテナも書き方も同じでdockerの上位互換。しかし、複雑で難易度の高め。
0916デフォルトの名無しさん
垢版 |
2019/08/26(月) 22:11:49.21ID:80nRq+Qr
普通、業務で使うならk8sだと思うが。分散や冗長化がdockerではできないからね。インストールがユーザー権限で出来るしdockerfileも使える。

完全な上位互換なんだが、代わりに手軽さは一切無いw
0917デフォルトの名無しさん
垢版 |
2019/08/26(月) 23:35:27.55ID:UMd5mz1m
そもそも無理な要件を期待してるんだから、要件の方を変えるべきだな。
Dockerでできることのほとんどは、Docker使わなくても手間が違うだけでできるわけだし。
無理だと分かってる要件を押し通そうとするのは無能。

押し通そうとしてるのが自分じゃなく上なら、そんな理不尽な職場は放棄して転職すべき。
0918デフォルトの名無しさん
垢版 |
2019/08/28(水) 08:51:22.17ID:Dqewl7QB
macOS版のDockerで、docker buildがたまにフリーズするバグの回避方法ない?
このバグのせいでテストがまともに出来なくて困ってる。
WindowsやLinuxでは発生しない。
タイムアウト仕込んでリトライさせるしか無いかな
0919デフォルトの名無しさん
垢版 |
2019/08/28(水) 20:14:43.89ID:mDli60SR
>>918
これでどや?

docker run --rm -d --name build-reg -p 55555:5000 registry:latest

docker run --rm -d --name build-dind --link build-reg --privileged \
docker:dind dockerd --host tcp://0.0.0.0:2375 --insecure-registry build-reg:5000

docker run -it --rm --name build-docker --link build-dind \
-v $PWD:/build \
-w /build \
-e DOCKER_HOST=tcp://build-dind:2375 \
docker:latest sh -c 'docker build -t build-reg:5000/test:latest . && docker push build-reg:5000/test:latest'

docker pull localhost:55555/test:latest

docker stop build-dind
docker stop build-reg

docker run --rm localhost:55555/test:latest
0921デフォルトの名無しさん
垢版 |
2019/08/28(水) 20:26:59.23ID:mDli60SR
つうか本当にmac限定バグなのか
単に速度が遅いだけなのではと思った
for Macはディスクアクセスがやけに遅い気がする
0922デフォルトの名無しさん
垢版 |
2019/08/28(水) 20:32:44.71ID:Dqewl7QB
>>919
やってないけど、関係ないわ
docker clientのバグだから
0923デフォルトの名無しさん
垢版 |
2019/08/28(水) 20:33:17.71ID:Dqewl7QB
あとdocker buildのバグな
0924デフォルトの名無しさん
垢版 |
2019/08/28(水) 20:35:18.65ID:Dqewl7QB
>>921
mac限定のバグ。WindowsとLinuxでは
今まで1セット100ビルドを何十回もやっていて出てなかった
0925デフォルトの名無しさん
垢版 |
2019/08/28(水) 21:15:43.36ID:mDli60SR
>>922
だとするとclientだけコンテナにすりゃいんじゃね?

docker run --rm -v $PWD:/build -w /build \
-v /var/run/docker.sock:/var/run/docker.sock \
docker:latest build -tag test .

これ100回ぐらい流してみてくれ
0926デフォルトの名無しさん
垢版 |
2019/08/28(水) 21:57:22.78ID:Dqewl7QB
>>925
それはLinux版バイナリだからうまくいくよ。
ただね、100回ビルドするだけで3分もかかるんだよ。普通なら30秒。
「1セット100ビルドを何十回もやる」ような場合はちょっと苦痛
更に言うと「Windows」でもやるのでボリュームは使いづらい
それにしてもなんでmac版だけ壊れてるかな?
0928デフォルトの名無しさん
垢版 |
2019/08/28(水) 22:02:48.52ID:Dqewl7QB
各ディストリ、言語やライブラリのバージョンの違いの
組み合わせでテストしてるから
0930デフォルトの名無しさん
垢版 |
2019/08/28(水) 22:29:52.82ID:Dqewl7QB
>>929
いつかhomebrewとかaptとか無くなって
全部docker上で動くようになる時代がくるといいですね^^;
0933デフォルトの名無しさん
垢版 |
2019/08/28(水) 22:37:10.79ID:4Zzob7TG
なんか話がおかしい。
確かにホストの方はどうにもならんことはあるだろうが、
ゲストの中身をいろいろなディストリビューションで実装する意味が分からん。
0934デフォルトの名無しさん
垢版 |
2019/08/28(水) 22:42:10.97ID:Dqewl7QB
ゲストの中身をいろいろなディストリビューションで実装するなんて言ってないぞ
いろんなディストリビューションで(Dockerを使わずに)動かすんだよ。

例えばいろんなディストリで動くバイナリを生成するコンパイラの開発
0935デフォルトの名無しさん
垢版 |
2019/08/28(水) 22:43:42.14ID:Dqewl7QB
「いろんなディストリでビルドできて正常に動くことの確認」の方がわかりやすいか?
0937デフォルトの名無しさん
垢版 |
2019/08/28(水) 23:01:14.04ID:Dqewl7QB
>>936
そうだよ?だからWindowsでもLinuxでも問題なくビルドできたので
今まで気づかなかった。だけど出かける時もありノートでも作業できるようにしたいわけ

それにしてもMac版だけdocker buildがフリーズすることに誰も気づいてないのかな?
0938デフォルトの名無しさん
垢版 |
2019/08/28(水) 23:03:54.16ID:4Zzob7TG
いやクラウド環境でも社内サーバーでも勝手に使ってやりゃいいじゃん。。
macにそこまでなんでこだわるかね。。
0939デフォルトの名無しさん
垢版 |
2019/08/28(水) 23:24:16.17ID:OKaAzkiN
>>937
githubのissueで調べるか出した方が良いのでは。

windowsとmacだとk8sの不具合が認識されていて、ネットワーク割当が原因と分かっているが、2年経っても治ってない。

dockerやk8sは基本的にLinux用。
後のOSは有志中心の開発だから不具合多い、と思った方が良い。
0940デフォルトの名無しさん
垢版 |
2019/08/28(水) 23:32:48.79ID:OKaAzkiN
ただ、ビルドを何周も回して動作確認する用途は明らかに本来の用途外だからどうかな。dockerではなく、メモリなどOSのオーバーヘッドかもしれないし。
0941デフォルトの名無しさん
垢版 |
2019/08/28(水) 23:41:21.60ID:Dqewl7QB
> ただ、ビルドを何周も回して動作確認する用途は明らかに本来の用途外だから

CircleCI全否定?(笑)
0942デフォルトの名無しさん
垢版 |
2019/08/28(水) 23:45:14.48ID:Dqewl7QB
並列でビルドしているわけじゃないんだからメモリはありえないし、
Mac版のdockerサーバーは仮想マシンのLinux上で動いてるんだから
Mac版のdocker clientの問題だろうね
0943デフォルトの名無しさん
垢版 |
2019/08/28(水) 23:52:23.20ID:mDli60SR
マルチプラットフォームで動作保証したいならDockerは使わずに実機か仮想マシン使った方がいいと思うけどな
Dockerで動いても生ホストでの動作保証にはぜんぜんならないでしょう(逆も然り)
0944デフォルトの名無しさん
垢版 |
2019/08/28(水) 23:56:02.47ID:OKaAzkiN
>>941
自分がやる時は中で操作して、動作をメモしてCIに移植するから、何周もビルドする事は無いな。遅いし。
0946デフォルトの名無しさん
垢版 |
2019/08/28(水) 23:58:06.35ID:Dqewl7QB
CIは待ち時間が入るから遅いんだよね
0947デフォルトの名無しさん
垢版 |
2019/08/28(水) 23:59:26.35ID:Dqewl7QB
Mac版Docker clientが悪いのは推論じゃなくて事実だよ
0948デフォルトの名無しさん
垢版 |
2019/08/29(木) 00:21:40.39ID:PDsNQoqu
Open Stack にも、オーケストレーションのHeat、
コンテナ・オーケストレーションのMagnum とかある

Magnumは、Docker Swarm, k8s, Apache Mesos と連携する
0950デフォルトの名無しさん
垢版 |
2019/08/29(木) 05:29:15.00ID:IbMmBKe3
まあ正直ツマラン流れだったな。情報小出しでもう少しマカがファビョって
荒れると面白かったんだが。面倒になったからさっさと終わらせるわ

再現コード、十数回でフリーズすると思うが、極稀に100回通ることもある
for i in $(seq 100); do echo $i; echo FROM alpine | docker build -; done

Mac版docker cilent 19.03系のみでフリーズする。18.09系なら問題なし。
Macで動かしてるdocker server 19.03に外部のLinuxのdocker client 19.03で
やった場合は問題なしだからどうみてもMac版docker clientの問題
0951デフォルトの名無しさん
垢版 |
2019/08/29(木) 05:32:22.57ID:IbMmBKe3
対策は19.03専用の機能は使ってないのでクライアントだけ18.09を使うことにした。
バイナリ配布されてるから~/binにでも入れるだけ。
世の中がバグに気づいてなおるのを待つことにする
githubへは面倒なので、だれかやって
0952デフォルトの名無しさん
垢版 |
2019/08/29(木) 05:34:21.45ID:PDIn7KyT
volume先のゲストのhtmlファイルをホストのブラウザからlocal host 3000で接続して
htmlの内容がブラウザに表示されたまではいいんだけど
htmlを編集してもブラウザが更新されてくれない(リロードしても編集前と同じ画面)
再度npm startするとちゃんと編集後のコードで更新されているんだけど、
少しの編集でも逐一チェックしたいのでとても不便・・・どうすればブラウザでも随時更新されるようになるのかな??
手探りで、docker build時に -no--chace=trueを付けてみても駄目だった
0953デフォルトの名無しさん
垢版 |
2019/08/29(木) 05:37:03.90ID:IbMmBKe3
ふぅ、せっかく荒らして遊ぼうとしてるのに邪魔しないでくれないかな
docker関係ないだろ
0955デフォルトの名無しさん
垢版 |
2019/08/29(木) 08:59:52.46ID:4t3Jo3Qx
macOSネイティブ版で苦労するより
VMware Fusionでも買って Ubuntu でも入れて
出先のMacノートではそれで開発すれば?って気がするな。
下手するとネイティブより速かったりして。
0956デフォルトの名無しさん
垢版 |
2019/08/29(木) 09:26:46.62ID:IbMmBKe3
>>955
それな。MacのCLIってなんであんなに遅いんだろう?
WSLと大差ない。WSLができてMacで開発するメリット無くなったわ
0958デフォルトの名無しさん
垢版 |
2019/08/29(木) 09:42:53.10ID:4t3Jo3Qx
カーネルでのファイルシステムキャッシュとかの性能最適化が遅れてるんじゃない?

Windowsも遅いからクライアントOS志向だとその辺で手を抜くのかね?
0959デフォルトの名無しさん
垢版 |
2019/08/31(土) 17:30:46.58ID:W/+KbOJi
>>957
>>958
ありがとう〜
多分npmのキャッシュが原因なのかなぁ
nodemonっての使って更新されるようになったけど
結局はnpm startをリスタートしているだけで待ち時間が少し早くなった程度
dockerはむつかしい^p^
0961デフォルトの名無しさん
垢版 |
2019/09/05(木) 06:20:29.29ID:0FQt0tq4
マカーさんの自己顕示欲は異常だわ
Docker以前のおま環のことで荒らすなや
きくちももこ学生です並のウザさは健在
0962デフォルトの名無しさん
垢版 |
2019/09/05(木) 06:56:17.02ID:rtvg+Hab
19.03.2がリリースされたけど直ってなかったな
やっぱりMacでdocker buildがフリーズする
0963デフォルトの名無しさん
垢版 |
2019/09/19(木) 16:17:59.10ID:XZ0hpx1V
>>962
再現性あるならgithubにでも書いてきたら?

どういう運用かわからんけどcoreutils周りとか
同じコマンド名で挙動が違うのにひっかかってるだけじゃないかって気が
0964デフォルトの名無しさん
垢版 |
2019/09/19(木) 18:00:09.96ID:VYOVEANP
>>963

これで再現するっていってんでしょ
for i in $(seq 100); do echo $i; echo FROM alpine | docker build -; done


運用が何の関係があるのかさっぱりわからん
(バグを)運用でカバーすれば大丈夫だからバグじゃない!とか言うつもり?
バグはバグだよ
0967デフォルトの名無しさん
垢版 |
2019/09/20(金) 09:43:47.50ID:Fc+ApEcD
>>966
再現や英語書きで2時間くらいは最低でもいるから
1人月150万円だと2万円は必要な作業なわけだがもしかしてタダで人を使おうってこと?

ホントに仕事として請け負うならやり取りのフォローアップも考慮して10万円コースよ。
0969デフォルトの名無しさん
垢版 |
2019/09/20(金) 10:36:59.64ID:y2zR5WSk
>>964
>バグはバグだよ

とはいえユースケースが想像しにくいテストコードでのバグってのは
みんな対応したくないもんで。

もっと重いコンテナでも同じように落ちる?
特定のコンテナだけだったりする?
0972デフォルトの名無しさん
垢版 |
2019/09/20(金) 13:22:02.17ID:fQRmEVoK
>>969
> とはいえユースケースが想像しにくいテストコードでのバグってのは

ユースケース? docker buildのユースケースがわからないの?

docker buildを行うとn%の確率で固まるっていう不具合なんだけど
運が悪ければ、1回目で固まる。
0973デフォルトの名無しさん
垢版 |
2019/09/20(金) 13:23:14.51ID:fQRmEVoK
>>969
> もっと重いコンテナでも同じように落ちる?
自分で試せよ。どんなイメージも関係ない
docker buildがまれにフリーズするというバグ
0974デフォルトの名無しさん
垢版 |
2019/09/20(金) 13:28:01.02ID:fQRmEVoK
お、誰か書き込んでるなw

ただクラッシュじゃないんだよね。
おそらく排他制御とかでデッドロック状態にでもなってるんだろう
18.xまでは問題ないから19.xのBuildKit周り(の並列処理)が怪しそう
0975デフォルトの名無しさん
垢版 |
2019/09/20(金) 17:21:19.64ID:y2zR5WSk
>>972

docker buildを行うとn%の確率で固まる
特定のコンテナに限らない
reprexは
for i in $(seq 100); do echo $i; echo FROM alpine | docker build -; done

と初めからから書くとみんな幸せだと思う
0977デフォルトの名無しさん
垢版 |
2019/09/20(金) 23:28:50.99ID:+K3cd4WX
issue出てるなら一旦待ちだろ。
kubernets関係の起動しないトラブルも2年近く治ってない。

windowsやmac版はそんなもの。
0978デフォルトの名無しさん
垢版 |
2019/09/22(日) 12:08:32.64ID:8mgJSnoC
なるほどパイプラインのタイミングの問題とか全く分からず使ってるバカなんだな。
0979デフォルトの名無しさん
垢版 |
2019/09/22(日) 12:56:50.94ID:aP0HRBTF
固まったり固まらなかったりすることと
パイプラインの問題(?)と何の関係があるの?

そもそも、お前が知ってるパイプラインの問題って何さ?
0980デフォルトの名無しさん
垢版 |
2019/09/25(水) 13:55:55.59ID:vrhM55u6
みんなサーバサイド開発してる人が多いだろうからDockerが人気なんだろうけど、俺的には「macOSコンテナ」が欲しいな
特定のプロジェクトをビルドする環境を構築したり保存したりできたらいいのにな
0981デフォルトの名無しさん
垢版 |
2019/09/25(水) 18:21:33.20ID:wN1JzOl2
Windowsは「Windowsコンテナ」があって、DockerもWindowsコンテナに対応してるけど、
macOSにはコンテナってないのか?

曲がりなりにもUnixなんだからchrootはあるはずだが、
プロセス分離するとかそれ以外の機能が足りないのか?
0982デフォルトの名無しさん
垢版 |
2019/09/26(木) 22:02:57.78ID:NGtUWv0T
GUI無しで使うメリットがほぼ無いから
作る人が居ないだけなんじゃないかと
0983デフォルトの名無しさん
垢版 |
2019/09/26(木) 22:21:01.51ID:KBLIPb+H
正確にはMacはGUIなしじゃ使い物にならない。
LinuxとWindowsはCUIだけでも使いものになるから
コンテナがある。という話?
0984デフォルトの名無しさん
垢版 |
2019/09/26(木) 22:40:37.29ID:1PonavB4
いや、WindowsよりmacOSの方がCLIなツールは充実してるよ。
単にAppleにコンテナ技術に関するやる気がないってだけの話。
0986デフォルトの名無しさん
垢版 |
2019/09/26(木) 23:49:38.59ID:1PonavB4
・WSLは追加で入れる必要があるけどmacOSは最初から一通り入ってる
・WindowsのネイティブGUIアプリと
WSLは別のサブシステムで動いていてやり取りに制限があるのに対し、macOSのネイティブGUIアプリとCLIツールは同じ世界で動いてるのでそういう制限がない

のでmacOSの方がまだちょっとCLI環境的には強い
0987デフォルトの名無しさん
垢版 |
2019/09/27(金) 00:13:25.85ID:VsKeB+lq
OS本体のコンテナ化に関する話でしょ。Macはブランドに固執してるからOSをコンテナにする事はなさそうだ。同じ理由でOSをPCで動かない設定にしてるわけだし
0988デフォルトの名無しさん
垢版 |
2019/09/27(金) 00:16:23.44ID:gw9G43bu
>>986
> ・WSLは追加で入れる必要があるけどmacOSは最初から一通り入ってる

MacのCLIはApple非公式のHomebrewを別途入れないとまったく使い物にならんぞ
0989デフォルトの名無しさん
垢版 |
2019/09/27(金) 00:26:49.54ID:gUp/eX0U
今Macで開発してるような技術者はUnixやCUIが好きだからWindowsよりMacを選んでると思うね
となると仮想Linuxベースになろうが抵抗感が無いからMacネイティブへの需要はなかなか少なくんじゃないのかなぁ
0990デフォルトの名無しさん
垢版 |
2019/09/27(金) 00:34:34.08ID:gw9G43bu
重要なのはいまMacで開発してる人じゃなくて
今Linux向けアプリ(クラウド関係はゲームも含めてほぼ全て)を
作ってる人はLinuxを選ぶってことだよ。
MacはBSD系だから今の時代少数派に分類される
0991デフォルトの名無しさん
垢版 |
2019/09/27(金) 00:36:42.95ID:gw9G43bu
BSD→Linuxは割と簡単
Linux→BSDはストレスが溜まる

なぜならBSDのコマンドはLinuxのものと比べて低機能だから。
さらにLinuxの情報が使えない上にBSDの情報が少ない
BSDといってもFreeBSDとかとも違うから実質Macだけの情報しか使えない
0992デフォルトの名無しさん
垢版 |
2019/09/27(金) 01:09:54.72ID:QYhXKz12
>>988
まったくというわけでもない。
WSLなしのWindowsに比べれば、素のmacOSの方が100倍くらいは便利。
0993デフォルトの名無しさん
垢版 |
2019/09/27(金) 04:35:44.43ID:vRUnFoYy
>>991
>BSD→Linuxは割と簡単
>Linux→BSDはストレスが溜まる
>
>なぜならBSDのコマンドはLinuxのものと比べて低機能だから。
一丸には言えない

>さらにLinuxの情報が使えない上にBSDの情報が少ない
manが読めない人にはそうかもね

BSD→Linuxソフトウェアが古すぎて腰を抜かす
0994デフォルトの名無しさん
垢版 |
2019/09/27(金) 04:48:12.80ID:JpyEjYqI
なんでWSLなしのWindowsと比べるんだろう?

それってエンジンなしの自動車に比べれば
自転車のほうが速いって言ってるようなもんやでw

> 一丸には言えない
いえるいえる。全部低性能

> manが読めない人にはそうかもね
manもLinuxの方が多い。それにBSDだと--helpがめっちゃ少ないしw

> BSD→Linuxソフトウェアが古すぎて腰を抜かす
古いのって例えば何?
0995デフォルトの名無しさん
垢版 |
2019/09/27(金) 05:13:53.10ID:vRUnFoYy
BSDをまともに使ったことがないのはよーくわかった
ssh,nginx,bash,zsh,tmux,mariadb,python,named,postfix,syslogd,clang,h]gccほぼ全部において古い
manが追いついてないコマンドいくつあると思ってんよ
0997デフォルトの名無しさん
垢版 |
2019/09/27(金) 06:05:12.94ID:JpyEjYqI
BSDの何が駄目かって、POSIXで規定されてる
基本コマンドが貧弱なんだよ。
最低限しか実装されていない。
よく使う基本コマンドだから困る
0999デフォルトの名無しさん
垢版 |
2019/09/27(金) 08:13:23.51ID:vRUnFoYy
busyboxとか使うと発狂すんだろな
1000デフォルトの名無しさん
垢版 |
2019/09/27(金) 08:20:02.99ID:JpyEjYqI
https://ja.wikipedia.org/wiki/BusyBox

> 1996年、ブルース・ペレンズが書いたのが起源である。Debianディストリビューション用の
> レスキューディスクにもインストーラにもなるフロッピーディスク1枚の完全なブート可能システムとして設計した

1. busyboxはLinuxのためのもの
2. BSDはレスキューディスクと比べるぐらい機能が低い
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 952日 14時間 18分 59秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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