X



トップページLinux
1002コメント360KB

Docker Part4

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
垢版 |
2020/08/17(月) 00:19:36.93ID:PKLBL3Xf
Linuxが持つコンテナ技術を使った、仮想マシン必要ないアプリケーション仮想化技術で
アプリケーションのデプロイが用意になります

Docker(アプリ仮想化)は仮想マシンと併用して使うことで最も効果を発揮し
開発・テストで使ったDockerイメージと全く同じものを本番環境で使えます
さらにWindowsとmacOSでも同じDockerイメージが動きます。
(Linuxは仮想マシンが不要ですが、WindowsとmacOSは仮想マシン技術を併用して実現しています。)

Dockerイメージ(Dockerfile)はアプリケーション開発者が作成します
動かすのに必要なもの全てがDockerイメージに含まれるので
インフラ担当者はそれを動かすだけ、本来のインフラの作業に集中できるようになります

Dockerは主にウェブ業界でサービスのデプロイの必須技術になりました
情報共有しましょう

http://www.docker.io/

前スレ
Docker Part3
https://mao.5ch.net/test/read.cgi/linux/1552023620/


注意 同じコンテナ技術を使うが異なるアプローチで仮想マシンの
代替を目指しているのがLXC。目的が全く異なるので注意
LXC(Linux Containers)
https://mao.5ch.net/test/read.cgi/linux/1330826939/
0002login:Penguin
垢版 |
2020/08/17(月) 04:20:29.77ID:6a0svHoE
>Dockerは主にウェブ業界でサービスのデプロイの必須技術になりました

>>1
は何も理解してない馬鹿。
すっげー前にDeployerを教えてあげて、それを納得したはずなのに何も理解していない。
マジでお前は、いつ学習が完了するんだよ。

https://mao.5ch.net/test/read.cgi/linux/1552023620/
>>651

何故話をこんなレベルまで戻すのか
0003login:Penguin
垢版 |
2020/08/17(月) 07:42:54.73ID:7e1FicdI
> すっげー前にDeployerを教えてあげて、それを納得したはずなのに何も理解していない。

手動でデプロイしてんのか?
オートスケールどうするんだ?
Docker使わないと構築に時間がかかるだろ

Dockerはイメージのrun(内部で自動的にpullする)だけで構築が完了する
アプリが動く状態として完成された物が手に入る

Deployer?運用のことを全くやってないか
数台規模で夜間メンテナンスなんてのを
いまどきやってる程度の小さいレベルんだろうな
0004login:Penguin
垢版 |
2020/08/17(月) 09:50:32.96ID:nMpEUDb7
> すっげー前にDeployerを教えてあげて、それを納得したはずなのに何も理解していない。

なんだこれ?妄想世界の住民か?

「すっげー前にDeployerを教えてあげて」
なぜ同じ人だと思ってるのか?

「それを納得したはずなのに」
納得したという妄想だろう

納得させたというレスがあるなら持ってきてみてくれ
妄想世界の住民だろうから、絶対に無理だろう
おそらく俺の予想は的中する
絶対に持ってこない
0005login:Penguin
垢版 |
2020/08/18(火) 01:03:22.24ID:OHt1kNFE
buildkitっていうのがあるんだってな
環境変数で指定しなくてもデフォルトで利用できるようにしたほうがメリットないだろうか
0006login:Penguin
垢版 |
2020/08/18(火) 05:36:30.13ID:gGD2VCkm
>>5
設計や動作が大きく変わってるから
長い検証期間を設けてるだけ
そのうちデフォルトになるだろうがすぐは無理

俺が知っている事例で言えばマルチステージビルドで
必要ない場合にビルドされなくなることがある
通常は問題がないだろうがビルドされているという
前提があったりすると問題が発生するだろう
0007login:Penguin
垢版 |
2020/08/18(火) 12:05:16.19ID:CHI/Brij
buildpacksって
OSやプログラミング言語のランタイムの更新があった時に
開発者は何もしなくても運用者側だけでアップデート出来るのが長所?

しかし、package.json内の依存ライブラリの更新はそれで対応できるのか?
出来ないなら結局Dependabotみたいのは必要そう

微妙に互換性崩れてて
OSや言語のバージョン上げたら動かないとかもありそう
0008login:Penguin
垢版 |
2020/08/18(火) 12:14:36.23ID:vrhRiUKv
運用者なんていない。あるのはシステムだけだ。
開発者が開発し、それを配布するときの面倒なごたごたを
システムが勝手ににやるだけだろう
開発者が楽になるためのツールだ
0009login:Penguin
垢版 |
2020/08/18(火) 12:17:59.84ID:CHI/Brij
いや、Dockerfileを書かなくていいのが最大のbuildpacksの長所か
Dockerfileを書かなくていいので、プロジェクト間のコピペを抑止出来る

OSイメージやプログラミング言語のランタイム更新だけなら、リビルドしないことも可能らしい

CIでのビルドに焦点を当ててるように見えるが、
アプリケーションコードを含んでないイメージでローカル開発も可能なんだろうか?
0010login:Penguin
垢版 |
2020/08/18(火) 12:35:39.81ID:vrhRiUKv
> アプリケーションコードを含んでないイメージで

なんだそりゃ?

Dockerイメージは(自分で開発している)アプリケーションコードを含むものだろ
自分で開発したイメージを配布・デプロイするためにDockerは使うんだぞ
0011login:Penguin
垢版 |
2020/08/18(火) 12:37:05.32ID:vrhRiUKv
自分で開発してないイメージはDocker pullして使うものだ
例えばMySQLとかnginxイメージとか

ああいうのは、本来はMySQLとかnginxの開発者が
作ってイメージとして提供するもの
実際にはDocker社が提供しているがね
0012login:Penguin
垢版 |
2020/08/18(火) 12:41:10.12ID:CHI/Brij
>>10
PHPでの開発の時
ローカル開発の時はphpのコードはボリュームマウントして入れるが

本番環境で使う時は予めphpのコードが入ったイメージをCIで作っておいて
それをプルしてきて動かす
0013login:Penguin
垢版 |
2020/08/18(火) 12:46:32.31ID:vrhRiUKv
>>12
それはDockerの本来の用途ではない
0015login:Penguin
垢版 |
2020/08/18(火) 12:49:21.12ID:6tCAoz+3
>>10
アマチュアっぽい
開発中も無駄にdocker buildしてそう
0016login:Penguin
垢版 |
2020/08/18(火) 12:51:02.02ID:5RCX1vBv
またキチくん暴れてるのか
頼むからコテハンつけてくれ
0017login:Penguin
垢版 |
2020/08/18(火) 12:57:12.68ID:CHI/Brij
同じベースイメージでローカルqgp環境の開発を行い
本番環境ではベース+アプリケーションのコードが入ったイメージを使う

ローカルと本番環境との差異が無くなるし
サーバーが何台に増えようとも
各サーバーはビルド済みイメージをプルして実行するだけで済む
0018login:Penguin
垢版 |
2020/08/18(火) 12:58:14.95ID:CHI/Brij
ローカルのphp開発環境だった

12 factor apps的には本番環境のサーバーでビルドするのはご法度
ビルドはCIでやっとけ
0019login:Penguin
垢版 |
2020/08/18(火) 13:19:35.69ID:jnSGFkqj
>>13
なぜ開発環境と本番環境を基本的に同一にしない?
Dockerなら、developmentもproductionも同じにできる。
0020login:Penguin
垢版 |
2020/08/18(火) 13:23:22.29ID:vrhRiUKv
同じにするということはイメージにソースコードを含めるということだな
0021login:Penguin
垢版 |
2020/08/18(火) 13:24:53.94ID:vrhRiUKv
>>15
開発中はDockerを使わない
テストで使えば良いのだ
0022login:Penguin
垢版 |
2020/08/18(火) 17:50:23.81ID:aQjsMjCJ
あぁ
やっぱアマチュアか
0023login:Penguin
垢版 |
2020/08/18(火) 19:28:38.84ID:dsb1JtiX
新人「せんぱぁ〜い。バグ報告書どおりにやったのに違うエラーがでるっス!助けてくださいよ〜(´;ω;`)」

べテラン「どれどれ…おいなんでDockerがあるのに使わないんだ!お前のとこだけ依存ツールのバージョンが違うじゃないか!」

新人「テストだけDocker使えばいいと思ったんスよぉ〜(´;ω;`)」

ベテラン「そもそも開発環境作るの手間だろ。なんで手間かけてトラブルの可能性を増やしてんだお前。マゾか?」

新人「いや〜苦行インストールしたほうがなんかやった感あるじゃないッスか😁いひひ」

ベテラン「はぁ…お前今日アサインしたタスク終わるまで帰るなよ」

新人「そんなあああああああ。゚(゚´Д`゚)゚。」


これ半年ぐらい前の出来事
0024login:Penguin
垢版 |
2020/08/18(火) 21:54:11.70ID:OHt1kNFE
前スレの結論ってどうなったの?
0025login:Penguin
垢版 |
2020/08/18(火) 22:35:26.33ID:vrhRiUKv
>>23
そういうことを防ぐために例えばRubyでは
Gemfileという仕組みがある

Dockerを使った所でバージョンの固定なんかできんよ
ディストロに入っているライブラリだけを使って開発するんじゃないんだから
むしろディストロに入ってないライブラリを使うことが多い

Dockerの中でGemfileを使ってバージョンを指定しているのであれば、
同じようにDockerを使わない場合もGemfile使ってバージョン指定をするだけの話
Rubyのバージョンも.ruby-versionでしていする

もちろん他の言語でも同様の仕組みがある
0026login:Penguin
垢版 |
2020/08/18(火) 22:43:53.31ID:vrhRiUKv
> ベテラン「そもそも開発環境作るの手間だろ。なんで手間かけてトラブルの可能性を増やしてんだお前。マゾか?」

Dockerは開発環境を作るためのものじゃない
何度もいわれていること
0027login:Penguin
垢版 |
2020/08/18(火) 23:10:08.52ID:aAEc1TPV
開発環境を作るためのものでもあるし他のためのものでもある
自分の狭い見識だけで道具の目的を決めつけようとすることは愚かだ
0029login:Penguin
垢版 |
2020/08/19(水) 08:00:28.55ID:ReIRiGVJ
>>28
VSCode Remote Containersという拡張機能がVSCodeにある
Microsoftは間違っていたとでも言うのかwwwwwwww

https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers

The Remote - Containers extension lets you use a Docker container as a full-featured development environment. Whether you deploy to containers or not, containers make a great development environment because you can:

* Develop with a consistent, easily reproducible toolchain on the same operating system you deploy to.
* Quickly swap between different, isolated development environments and safely make updates without worrying about impacting your local machine.
* Make it easy for new team members / contributors to get up and running in a consistent development environment.
* Try out new technologies or clone a copy of a code base without impacting your local setup.
0030login:Penguin
垢版 |
2020/08/19(水) 08:04:37.15ID:xs6pIZGX
仮想マシンはDockerと同じっていう別なキチガイと
Dockerは開発環境に使えないってキチガイの夢の共演
両方とも寝言は寝て言えっつーのw
そんなの言ってるのお前だけだから
0031login:Penguin
垢版 |
2020/08/19(水) 08:56:10.31ID:io50YOm5
アマチュアさんいつも大量レス
暇そうで羨ましい
0032login:Penguin
垢版 |
2020/08/19(水) 20:46:39.72ID:2bqX/eA6
実装〜単体まではローカル端末上のDockerにコード置いたディレクトリマウントして使って、内結以降はイメージビルドして商用相当の開発環境にデプロイしてテスト、そのイメージをリポジトリにあげといて商用からはそれpullするだけって使い方が普通じゃないの?
0034login:Penguin
垢版 |
2020/08/20(木) 09:25:23.96ID:M933wn+5
> 実装〜単体まではローカル端末上のDockerにコード置いたディレクトリマウントして使って、

デバッグどうするの?
デバッグ用のパッケージを入れるの?
そうすると本番環境とは厳密には違う状態になるよね?

どっちみち開発では便利さのために本番環境とは違う環境になるんだから
Docker使わずに開発しても同じことじゃない?
0035login:Penguin
垢版 |
2020/08/20(木) 11:46:53.15ID:clJ3eFcE
できるだけ寄せていくだけだ
Alpineで動かすならAlpineで開発したい
でも支給マシンはubuntu、windows、mac、、、
0036login:Penguin
垢版 |
2020/08/20(木) 11:56:48.78ID:clJ3eFcE
開発環境を汚したくないんですよ
dockerの特性上、1つのプロジェクトで様々な言語、言語バージョン、ミドルウェア、ツール、サービス、それらに依存するパッケージ、OSレベルの設定、、、
とまあとにかく多くのものに依存してしまう
そして開発者が従事するプロジェクトは1つじゃない
開発マシンにこれらを直接インストールして管理するのは大変だ
dockerならソースをpullしてコマンド打つだけ
別のプロジェクトが干渉する可能性も極めて低くなる

アマチュアさんみたいにAPPとDBのシンプル構成、別プロジェクトは無し
みたいな状況なら直接インストールでもいいかもしれんがね
0037login:Penguin
垢版 |
2020/08/20(木) 11:57:00.03ID:/cAAGkAU
>>35
開発はディストリ依存にするべきじゃないよ
変更しづらくなる
0038login:Penguin
垢版 |
2020/08/20(木) 11:58:58.49ID:/cAAGkAU
>>36
> 開発環境を汚したくないんですよ
汚す必要ないのでは?

> dockerの特性上、1つのプロジェクトで
Dockerの性質のものは一つもないね

> 開発マシンにこれらを直接インストールして管理するのは大変だ
全然大変じゃないよ。
そのためにrbenvなどの仕組みが普及してる

アプリを動かす環境は特定のディレクトリ以下にすべて入る
■ このスレッドは過去ログ倉庫に格納されています

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