探検


Docker Part5

■ このスレッドは過去ログ倉庫に格納されています
2020/12/02(水) 19:13:07.36ID:y3Zdr8oB
DockerはLinuxが持つコンテナ技術を使ったアプリケーション仮想化技術です。
アプリケーションを動かすために必要な各種ライブラリ等を一つのDockerイメージに
まとめることで、さまざまな環境へのデプロイが容易になります。
例えばWindowsやmacOSを使って開発・テストしたDockerイメージを
そのままクラウド上のLinuxの本番環境で使うことができます。

クラウド上の環境が仮想マシンであるため、Dockerは仮想マシンと併用して使うことが多いですが
仮想マシン技術とは無関係の技術です。実際Linux環境において仮想マシンは必須ではありません。
WindowsとmacOSでは仮想マシンを使いますが、これはOSがLinuxではないからです。

Dockerは主にアプリケーションを動かすために設計されているのでデータを保存するのには適していません。
データはDockerイメージの外部、ボリュームを使ってホスト環境に保存するかネットワーク通信で外部サーバーに保存します。
またDockerコンテナは一つのサービスを実行し、複数のサービスが必要な場合はdocker-composeやk8sなどを使って連携させます。
Dockerを仮想マシンの代替として、コンテナ内で複数のサービスを起動しようとすると困難が待ち受けています。
それはDockerの設計方針とあっていないからです。

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

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

http://www.docker.io/

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

注意 Dockerを仮想マシンの代替として使いたいと考えてる人は、DockerではなくLXCを使いましょう
LXC(Linux Containers)
https://mao.5ch.net/test/read.cgi/linux/1330826939/
2020/12/07(月) 01:39:44.13ID:XVF5iFmD
ワンピース ねじまき島の冒険(同時収録:ジャンゴのダンスカーニバル)でも見ればいいんじゃないですかね?
2020/12/07(月) 02:00:47.62ID:Gjaw1DR4
DockerHubってイメージじゃなくてDockerfileとかダウンロード出来ないの?
今使ってるイメージ微妙に不便なとこあるからPRしようと思ってるんだけどやり方がわからない…
2020/12/07(月) 08:55:45.83ID:XVF5iFmD
どっかにかいてあるだろ
Dockerfileは必須じゃないから
ないこともあるが
96login:Penguin
垢版 |
2020/12/07(月) 08:57:20.10ID:QEYCllWo
>>92
いたずらハゲたかジャンゴってスーパーマリオ64にあったよな

>>94
GitHubへのリンクが無くて
探しても分からなかったら諦める
97login:Penguin
垢版 |
2020/12/07(月) 09:51:55.10ID:qRPS8Kkp
>>84
こういうコメントって何なんだ?
薄気味悪い。
2020/12/07(月) 11:50:21.78ID:2hRxy7oG
>>97
>>97
2020/12/07(月) 22:26:09.34ID:uz+f63A+
Docker 始めたばかりでよくわからないんだけど
docker-compose で複数プロジェクト起動したりするときってみんなどうしてるの?

数少なかったらコンソールから手入力でも行けそうだけど
プロジェクトとかオプションとか多くなるとしんどいですよね

シェルスクリプトとかでがんばるのかな
2020/12/07(月) 22:39:51.94ID:2hRxy7oG
Ansible
2020/12/07(月) 22:40:33.85ID:2hRxy7oG
Chef
2020/12/07(月) 22:41:05.57ID:2hRxy7oG
Puppet
2020/12/07(月) 22:55:17.04ID:VASQvhG4
>>99
複数プロジェクトって?
それぞれのプロジェクト?が連携してるのなら
一つのdocker-compose.ymlでやるけど
2020/12/07(月) 23:03:26.19ID:xbcRerkM
プロジェクトは公式の単語だからドキュメント見てこい
2020/12/07(月) 23:12:46.18ID:uz+f63A+
>>103
たとえば WordPress と BBS を運用するサーバがあったとして、
両者は連携させないのでそれぞれに docker-compose.yml を書くとするじゃないですか

それでフロントエンドに httpd を置いて、リバースプロキシで振り分けるとして
これも docker-compose.yml を書いて運用するとプロジェクトが3つになります

関連はするので全部まとめて一つにするのが正義かもしれませんが
密に関連するのと比較的疎になってる部分があるのをごちゃまぜにするのがはたしてよいのかどうか

で、こういう場合は大抵どうしてるのかなと思ったのです
2020/12/07(月) 23:20:48.46ID:s4ROaUh2
>>105
もう答え出てるよ?構成管理ツールを使えばいい
Dockerだからといって、急に昔ながらのやり方が変るわけじゃない
K8Sを使わないなら、Dockerなんてただのパッケージングツールでしかない
ビルドして、サーバーにリリースして、起動する
ほら、いつものやつだろ
だったら、いつものやつを使えばいい
2020/12/07(月) 23:30:36.35ID:uz+f63A+
>>106
ありがとうございます
構成管理ツールを利用している人も多いということですね
検討してみます

K8S はクラスターとかで使うので 1 サーバで運用の場合は用途が違うのかと思ってました
こちらも勉強します
2020/12/08(火) 01:12:23.41ID:T8CA3+zn
構成管理ツールはサービスを起動するための「構成」を作るだけなので
「サービス起動」自体は自分で書かないといけない

Dockerだからと身構える必要はない
PCを起動した時にサービスを自動起動するのはなにか?
今だとsystemdがよく使われている

systemdを使ってサービスを自動起動させる
その中身がdocker-composeになるだけの話
2020/12/08(火) 12:57:08.22ID:vm95yel+
systemdでラップしたほうがいいのか?
2020/12/08(火) 17:44:01.58ID:YCdqEFxJ
dockerコンテナ単体なら--restart=alwaysで出来るはずだから
docker-composeでもrestartオプションでなんとかなるんじゃね?
2020/12/08(火) 18:36:52.42ID:oaBCaMVV
オレオレスクリプトよりは良いんじゃないかな
systemdの規則に則って設定が書かれるから引き継ぎしやすいだろう
2020/12/08(火) 19:26:41.90
DockerfileでRUN django-admin startproject mysite .するとエラーはでないけど何も作成されない
docker-compose runでやるとなぜか成功する
2020/12/08(火) 19:55:13.84ID:FDxUpcH4
linuxでdocker使うとvolumeでroot以外書き込みできなくなるのにハマるから面倒くさい
windowsで使ったときは天国だった
2020/12/08(火) 19:58:38.58ID:eFXW3K5V
rootが嫌ならpodman使えばいいよ
115112
垢版 |
2020/12/08(火) 20:06:55.25
VOLUMEの設定忘れてただけだった
2020/12/09(水) 20:54:48.97ID:3pxZSRbv
「イラストでわかるDockerとKubernetes」は完全に良書 - Cloud Penguins
https://b.hatena.ne.jp/entry/s/jaco.udcp.info/entry/2020/12/08/215058

↑
ブクマがすごい増えてるがこのスレの先輩方の意見も聞かせてください
2020/12/09(水) 21:14:43.67ID:49jDKvS/
読んでない
2020/12/14(月) 20:44:43.81ID:MpGNayog
ちょろっと立ち読みしたけど概念解説本って感じ
手を動かす類のものではない
119login:Penguin
垢版 |
2020/12/15(火) 21:55:20.80ID:Toj7f6IY
M1 Mac買ったんだけど、プレビュー版のメールが来ない
2020/12/15(火) 22:09:19.38ID:UAU5VS9m
ドッカーン動いたら買い換えるわ
121login:Penguin
垢版 |
2020/12/16(水) 05:21:20.87ID:21hq6ko2
https://appleinsider.com/articles/20/12/11/docker-rolls-out-initial-support-for-apple-silicon-macs
動くのはもう動いているだろ。
>>120
2020/12/17(木) 15:03:08.88ID:a5ZURXg6
動いてるのに買わないみたいだ…
123login:Penguin
垢版 |
2020/12/17(木) 21:57:58.01ID:T/e7w5PI
x86のイメージもアップルシリコンで動く?
2020/12/18(金) 05:08:20.52ID:K0IxBBPr
動く訳ないでしょ。
125login:Penguin
垢版 |
2020/12/18(金) 08:07:58.88ID:0nv9I87T
x86_64のイメージもいい感じにエミュレーションしてくれないのか
2020/12/18(金) 09:45:54.40ID:V5ZdgnIp
M1のdockerはarmもx86_64も動くよ

x86_64はqemuかなにかのCPUエミュレーションを使うらしいから相当遅いようだけど
ttps://twitter.com/ogrisel/status/1339508321078939650

docker run --platform linux/amd64
のようにすればx86_64のイメージが動くらしい
ttps://twitter.com/akhenakh/status/1339582893375418379
https://twitter.com/5chan_nel (5ch newer account)
2020/12/18(金) 11:57:26.63ID:bJJNWn7m
docker-compose up -dでサーバを立ち上げたままストを再起動すると
WIndowsだと自動的に立ち上がりませんがUbuntuだと自動的に立ち上がりました。
この挙動の違いはなんか設定があるのでしょうか?
2020/12/18(金) 17:42:12.78ID:DAv45rNL
>>126
>docker run --platform linux/amd64
>のようにすればx86_64のイメージが動くらしい

これってターミナルをロゼッタで
開くのが必要なやつかな?
https://i.imgur.com/XrDGxYc.jpg
2020/12/19(土) 15:52:01.61ID:BO5W/HJS
djangoのsqliteで日付ソートしたいとき
filterで__range=(start_date, end_date)ってやれば取得できたけど
この日付以降を取得したい、この日付までを取得したい
って場合はどうするの??
end_dateのとこを最新のにするとか
start_dateのとこを0年?にするとかで対応できそうだけど
別の方法はないのだろうか
130login:Penguin
垢版 |
2020/12/19(土) 16:03:47.40ID:PLLdJaX3
スレチ
131login:Penguin
垢版 |
2020/12/21(月) 18:19:29.62ID:pvw8T0nH
Windows 10 Home 版に、WSL2, Docker を入れた

OS の連続アップデートに、3時間掛かった。
CPU-i3, 8GB メモリを、CPU・電力エコモードで使っているから、コンパイルが遅いのかも

その後、WSL1 から、WSL2への変更。
Windows 10 Home用のDockerのインストール自体は、簡単だった

これで、Windows10 プロ版じゃなくても、Dockerを使える。
Kubernetes も入っていた
2020/12/21(月) 20:21:35.25ID:dlrHq+JK
最新OSイメージをUSBに焼いてインスコすればアプデすぐ終わるよww
2020/12/21(月) 20:23:44.45ID:OdEL38NI
ホストマシンにLinuxを使わないのなんで
2020/12/21(月) 20:27:51.26ID:xz2OJU6d
とりあえず触ってみたいだけじゃないかな?
Linux用の他の物理PCが無いとか
2020/12/23(水) 10:56:00.31ID:1+vPbIId
>>133
これって、普段Win使っててもDocker
使うときは別のLinux入ってるPC使わないの?っていう質問なの?
それとも、Docker使うのに何でLinuxじゃなくて、Win10home入れてるの?
ていうこと?
2020/12/23(水) 12:55:07.61ID:wvHwSATl
>>135
後者
最初から全部Linuxだけでよかないか?
2020/12/23(水) 13:28:23.51ID:XQNsan1J
ふだん使いにはWindowsのがいいから。

そんなんやからLinuxが普及しないんや。。。
2020/12/23(水) 19:45:01.63ID:6MYaQfnZ
>>1
windowsでffmpegのビルド環境をDockerで構築するのはベターな使い方では無いって感じなんですかね
2020/12/23(水) 21:09:36.11ID:ZguD9N4D
>>138
はい。ベターではありません。
Dockerはffmpegを作るものです。
その仮定でffmpegのビルド環境を作ることになるかもしれませんが
最終的に作るのはffmpegです。ビルド環境は途中の状態に過ぎません。

単体で配布できる動くffmpegバイナリがあれば嬉しいですよね?
Dockerはそれを実現するものです。
2020/12/23(水) 22:18:55.92ID:dXEa7PSI
つまりどういう事だってばよ!
2020/12/23(水) 22:54:12.17ID:7P73jueA
exeで配布したかったらLinux立ち上げるかwslでやれって事だな
2020/12/23(水) 22:55:06.59
playwithdocker
プログラムは動くけどウェブサーバーだけ503になる?
コードミスったのかとおもったけど前に成功して改変してないやつがダメだし
143142
垢版 |
2020/12/24(木) 21:28:09.78
今やったら復活してた
playwithdockerみたいな感じで試せるとこないかな
有料でも
2020/12/26(土) 13:46:50.79ID:tK7SVK34
docker-composeでweb制作をしたいと思うのですが、
javascriptのeslintはホストとコンテナどっちにインストールするものなんでしょうか?
2020/12/26(土) 13:49:25.11ID:ey69S6CQ
普段開発用はホスト
CI用はコンテナ
146login:Penguin
垢版 |
2020/12/26(土) 14:16:15.83ID:vKD6dD+x
ホストのファイルシステムをマウントして使うとファイルシステムの通知機能は使えないよね

nodeをコンテナから使うとホットリロードはポーリングでしか出来ない

Unisonみたいの使えばファイルシステムはLinuxのになるから
一応いけると思うけど・・・
2020/12/26(土) 14:20:19.18ID:ey69S6CQ
対応していれば使える
Windowsならできるやろ
2020/12/26(土) 14:20:46.00ID:YfHoFsh2
ホストによるのでは
2020/12/26(土) 14:29:33.41ID:ey69S6CQ
うん。だからWindowsは対応してる
150login:Penguin
垢版 |
2020/12/26(土) 14:30:36.66ID:vKD6dD+x
https://www.infoq.com/jp/news/2020/03/docker-desktop-windows-fuse/

すまんWindowsはinotify対応あるのか

macもいける?
2020/12/27(日) 02:35:18.09ID:GBKMOnwz
なんでWindowsは調べられてmacは調べられねーんだよw
152login:Penguin
垢版 |
2020/12/27(日) 08:14:52.72ID:pXorxqlh
タイムドッカーン
153login:Penguin
垢版 |
2020/12/27(日) 09:54:02.63ID:6j5u573s
Docker Desktop for Windowsの3.0にアップデートしても大丈夫?
謎の不具合に遭遇したりしない?

昔、家でWSL2バックエンドで使ってたらアプデ後に起動できなくなった事があった
大したデータを入れてないのでリセットしたが、あんまり信用出来ないなと思った

Mac版は自分では使ってないが、メジャーアップデート後から奇妙な不具合が多数報告されてるのは知ってる
一応安定版リリースじゃないのか

Mac版は一応ダウングレード出来るようだ

会社ではWindowsでHyper-Vバックエンド
2020/12/27(日) 09:55:35.30ID:E/Jc62KU
宗教上の理由ならしゃーない
2020/12/27(日) 10:10:46.14ID:dyOXY6iu
Docker Desktop for Windowsの3.0でもHyper-Vバックエンド対応してるだろ?
WSL2バックエンドは、たぶん俺しか困らないだろうなってバグ
(カーネルの古いAPIの削除による仕様?)があって切り替えれないでいる
バグの内容を言うと、困る人は俺ぐらいだろうなって特定されかねないのでここでは言えないw
2020/12/27(日) 13:56:05.75ID:h8j0trq0
windows sandbboxで試せばいいだろ
2020/12/28(月) 19:37:37.29ID:WwxpjbVt
>>155
カーネルAPIの互換性については弊社でも度々問題になりました。
古いディストリイメージを使う場合はHyper-Vバックエンドが安定しますね。
2020/12/30(水) 12:55:14.64ID:ggs3i1Xp
podmanいいね
2020/12/30(水) 14:26:42.72ID:nRZrvQqz
podmanもっと使ってくれよ
このままrocktみたいに消えるのやだよ
2020/12/30(水) 14:40:54.65ID:ggs3i1Xp
Redhatが推してるから消えないよ
2020/12/30(水) 14:48:49.30ID:nRZrvQqz
消えないのと普及しないのは違う
もっとRedHatが開発した独自ツールが普及するといいのに
2020/12/30(水) 14:50:03.13ID:ggs3i1Xp
dockerエイリアスはpodmanなので自動的に広まるよ
2020/12/30(水) 14:53:52.41ID:nRZrvQqz
まだ広まらないんだよ
なんでだよ?
2020/12/30(水) 14:58:35.32ID:nRZrvQqz
RedHat独自で普及したものがないのが不満
2020/12/30(水) 15:01:46.25ID:hGZGs2gE
rpmがあるやろ!
2020/12/30(水) 15:35:30.91ID:WcsKhyXe
本番クラスタはマネージドK8S
開発環境はDockerCompose
Podmanは…オンプレシングルノード本番専用?
2020/12/30(水) 16:12:47.38ID:nRZrvQqz
RedHatにベンダーロックインされてる人が使うw
RedHatがDockerを切り捨てたから
それに従わないといけないのだ
2020/12/30(水) 17:00:40.15ID:r9TksVgH
商用はRedhatだからpodmanに従ったほうがよさそうだね
2020/12/30(水) 17:04:03.17ID:nRZrvQqz
あとで移行すればいいよ
普及してから(そして大抵の代替技術は普及しないw)
2020/12/30(水) 17:19:23.33ID:/V2k7qc7
podman 2〜Dr.ワイリーの謎〜
2020/12/30(水) 21:31:55.50ID:lasrj5XX
PodmanよりDockerRootlessのほうがええわな
2021/01/05(火) 10:35:05.44ID:a6MKPo5T
docker-composeはConfigMapに相当する仕組みが無いから不便ですね
2021/01/08(金) 18:53:27.20ID:MTOnxYZl
Wasmerも本格的に動き始めた
いよいよDockerの居場所がなくなってきた
2021/01/08(金) 19:39:29.85ID:M4gsjCxc
rocktの登場で居場所はとうの昔になくなってたはずだが?
2021/01/09(土) 19:04:27.89ID:pshOY4NZ
自作ソフトのdockerイメージを作って配布しようとしているんですが、設定ファイルの類はどうするのが普通ですかね?

1. 配置するディレクトリを決めておいて使用する側でmountしてもらう
2. volumeを作ってそこに置いてもらう
3. デフォルトの設定ファイルをイメージ内に配置して、使用する側で上書きしてもらう
4. その他

ケースバイケースの場合は判断ポイントなどを教えてください。
2021/01/09(土) 19:33:53.86ID:vXKDEOHB
設定の構文が複雑ならファイルをサポート
そうでないならコマンドライン引数、環境変数、ファイルを全部サポート
177login:Penguin
垢版 |
2021/01/09(土) 19:39:21.47ID:Xx9/0RY+
>>175
コマンドラインの引数や環境変数は?
Amazon ECSはこれらの方法でしか設定を入れられないから
環境変数で設定出来た方が便利

ECSの機能を使わず、ホスト上にファイルを配置しておけば設定ファイルも使えるが、わりと面倒くさい

k8sだとConfigMap、Secretの内容をファイルとしてマウント出来たりして便利だった

パスワードのような機密情報はコマンドライン引数にするとまる見えになるから
設定ファイルや環境変数にすべき

Traefikだったら複数の設定方式に対応してて
・コマンドラインの引数
・設定ファイル(場所は固定っぽい)
・環境変数

どれも自由に選んで使えた

設定ファイルは変更を検知して自動的に反映する設定も可能なので
別途、同じディレクトリをマウントしたサイドカーコンテナを作って
独自のConfigProvider作れたりとか
夢が広がりんぐ
2021/01/09(土) 19:57:14.26ID:pshOY4NZ
>>176
>>177
動かそうとしているアプリケーションは設定ファイルのみを使用しますので、それを実行する側の
ユーザー環境で差し替えさせるにはどういうやり方をすればいいかという質問でした。
実行環境は社内のユーザーにdockerを用意してもらう前提で、amazon等のcloudの利用は想定していません。
1.,のようにホストのディレクトリをマウントさせるのが普通ですかね?
2021/01/09(土) 20:04:36.62ID:vXKDEOHB
>>178
差し替える方法はユーザーが自分達の環境に合わせて考えること、なのでイメージ提供者はあまり考えなくていい
どこに、どんな形式のファイルを置けばいいのか、だけを仕様として明確化すること
2021/01/09(土) 20:06:58.83ID:pshOY4NZ
>>179
ありがとうございます。それはつまり、

>3. デフォルトの設定ファイルをイメージ内に配置して、使用する側で上書きしてもらう

これでいいってことですかね?
2021/01/09(土) 20:07:54.19ID:73ECCOc1
>>180
それでいいです
2021/01/09(土) 20:09:58.67ID:73ECCOc1
設定ファイルの書き換えをスクリプトで行いたいユーザーのために、エントリーポイントにフックを仕掛けるとより親切
2021/01/09(土) 20:11:45.33ID:pshOY4NZ
なるほど、ありがとうございました!
2021/01/11(月) 02:15:48.57ID:zpurJaCg
rktって開発中止されてたのか。
185login:Penguin
垢版 |
2021/01/11(月) 11:19:34.46ID:ZlDEkoeZ
>>184
気づくの遅くね?
2021/01/11(月) 12:15:18.06ID:89OcdB6i
結局dockerがメジャーなままなのね
2021/01/11(月) 12:36:25.01ID:NoL+Y9f0
podmanとK8S
2021/01/11(月) 12:58:21.16ID:r3JkpTc1
docker楽でいいね
docker-composeをアップすると自動でやってくれるレンタルサーバとかクラウドサーバないでっか?
2021/01/11(月) 13:10:41.31ID:dD9m53n1
Windows、Macはまだdockerが主流なんだっけ?
2021/01/11(月) 13:38:06.53ID:u+O//c17
K8SがデファクトスタンダードだからDCでの運用ノウハウを探すの大変だよ
素直にK8Sを勉強したほううがいい
大変なのは最初だけ
2021/01/11(月) 14:10:04.17ID:5exndTNV
1ノードしかない場合のそのへんの得失ってどうなんだろう。
サーバー1台だとオーバースペックというか無駄に複雑になるだけにも思うけど。
192login:Penguin
垢版 |
2021/01/11(月) 14:31:52.64ID:ZlDEkoeZ
kubernetesは色々運用管理に必要なものが揃ってて便利だが
使わないならオーバーキルな気はする
k3sは知らんが、本家のKubernetesは重過ぎ

使うなら最初はマネージドで
コントローラーに追加費用要らない所も多い

GKEは高可用性無しなら1つだけ無料
AKSやLinodeは無料
DigitalOceanは無料だが日本のデータセンターが無い

EKSは未だに有料
■ このスレッドは過去ログ倉庫に格納されています

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