探検


Docker Part6

■ このスレッドは過去ログ倉庫に格納されています
1login:Penguin
垢版 |
2021/07/12(月) 06:41:45.42ID:SoKAlVq4
テンプレとかいらんやろ
2022/07/17(日) 09:22:28.89ID:wl85O7GK
Dockerfileだったらbuildするだけでローカルにイメージはできるだろ?
commitなんか必要ない
737login:Penguin
垢版 |
2022/07/17(日) 10:00:11.33ID:lGp37g/e
dockerでシステム壊れちゃったから諦めた
2022/07/18(月) 12:36:24.93ID:oFmQRFjW
>>734
なぜありえないのか?
顧客がつねにお金を出してくれるのか?
顧客がお金を出さない場合は、古いイメージのまま、使い続けることになる
2022/07/18(月) 18:50:58.72ID:5grstZfi
古いイメージ=脆弱性があるシステム
システムを更新しないで放置してはいけない
2022/07/18(月) 19:13:24.41ID:E6KhgG4/
顧客が金出さないから云々って状況がよく分からん
システム構築とかの仕事を請け負ってその後の無償対応期間ぐらいの期間であれば、作業時に使ったイメージがサポート切れになるほどの時間は経っていないだろうし
それ以降は顧客が金出さない以上何言ってきても無視するだけの話ダロウェイ
2022/07/18(月) 19:14:02.40ID:E6KhgG4/
末尾変になったけど無視して
2022/07/18(月) 21:43:50.26ID:xwfMzGl6
>>740
ユニケージっていうのは現場の人間が内製するためのシステムなんだよ
例えば東急ハンズのような所にプログラミングの専門家はいない
システムなんてせいぜいCGIで作った買い物カートで十分
そういった所にシステム開発費とかないから一度作ったら何年も放置するのはざら
データベースとか難しい技術はしらないし、OSのアップデートとかシステムが動かなくなったら困る

シェルスクリプトでシステムを作っていればコピーするだけでOSのアップデートは完了
OSの基本的なコマンドしか使わないから、OSをアップデートしてもそのまま動く
パイプの匠が考えた開発手法は大規模システムにも対応している
人の入れ替わりの激しい業界で、現場のやすい人材だけで内製するにはこの方法しかない
2022/07/19(火) 08:43:28.67ID:cr5I5gt1
客が金出さずサポート切れの古いイメージ使い続けて脆弱性突かれて情報流出しようがこっちには関係ないんだからどうでもいいでしょ
744login:Penguin
垢版 |
2022/07/19(火) 09:29:24.46ID:B9BrngT3
>>735
考え方が硬すぎる
そうなりゃ別の方法、別のイメージでイメージ作ればいいやん
745login:Penguin
垢版 |
2022/07/19(火) 09:31:57.67ID:B9BrngT3
commit(笑)
746login:Penguin
垢版 |
2022/07/19(火) 10:16:50.53ID:Hlz2pdY/
>>744
別のディストリを使うとなると、構築のために試す必要がでてくる。
時間かかる。
逆になぜそこまでイメージを嫌うのか。
2022/07/19(火) 13:06:36.07ID:1i77nEK4
いつまでも塩漬けにすることの問題は別にして、最低限、運用中のものについてイメージを残しておくのは必須だろう
スケールアウトや再デプロイの度にいちいちビルドしてたらクソ遅いし、パッケージの更新等でビルドが失敗するようになったときに修正までの時間を稼ぐ必要がある
そのこととcommitの是非は全くの別問題だ
2022/07/19(火) 17:25:54.04ID:dZACW0T8
バックアップなら、commitよりも、exportのがええんちゃう?
749login:Penguin
垢版 |
2022/07/19(火) 22:10:51.89ID:Hlz2pdY/
イメージが大事だとして、
どうしてcommitでイメージを生成させたら駄目だと思うのか?
2022/07/19(火) 22:41:54.99ID:eLGfXh/b
自動化できねーからだろ
アホ化w
2022/07/20(水) 00:40:19.93ID:HJwfM5+3
まずdockerの各コマンドが何をやっているのか正確に理解することからだ
752login:Penguin
垢版 |
2022/07/20(水) 06:25:39.70ID:+nizZvvp
>>750
自動化ってなにを?
753login:Penguin
垢版 |
2022/07/20(水) 09:16:41.14ID:FRbRBwj9
>>746
そうやって技術的負債が増えてくんだよ^^
754login:Penguin
垢版 |
2022/07/20(水) 09:17:08.28ID:FRbRBwj9
デプロイのためのイメージとベースイメージごっちゃになってね?
2022/07/20(水) 12:38:25.80ID:j9T/veZ/
docker commit の話がなんでimageの話に化けているんだよ。
image使うにしても、まずdockerfileにまとめろよ。dockerfile無しでimageだけとか、Dockerの利点捨てているだろ。
2022/07/20(水) 21:00:36.83ID:clOkjYBA
Dockerイメージはnixで生成するのがさいつよだろ

Dockerfileでapt使ったりしたら
aptはロックファイルも無いから
「Dockerイメージをビルドした時点での最新版パッケージ」になってしまう
aptの部分だけ別Dockerfileにするとかは面倒くさいし

nixなら同じソースファイル使えば同じバイナリになる
既存パッケージを使うだけなら、再現性もたせるためだけに別々にビルドする必要はなくなる

再現性のあるビルド - Wikipedia
https://ja.wikipedia.org/wiki/%E5%86%8D%E7%8F%BE%E6%80%A7%E3%81%AE%E3%81%82%E3%82%8B%E3%83%93%E3%83%AB%E3%83%89
2022/07/20(水) 21:13:38.08ID:GnxXvvFU
>>756
とんだにわかだ
apt も dnf もバージョンを指定してインストールできる
そしてそれが必ずしも正義ではない
互換性がある範囲で脆弱性やバグを修正した新しいバージョンを使おうする方法論もある
そもそも、基本的にはイメージを再利用し再現性を保証するのが一般的な考えでDockerfileで完全な再現性を求める運用には無理がある
758login:Penguin
垢版 |
2022/07/20(水) 23:37:23.59ID:OlwSaSGg
なんとか頑張って「俺はお前らの知らない凄いことを知っている」
と言いたい人
759login:Penguin
垢版 |
2022/07/21(木) 08:29:48.53ID:Bsj4t+WP
>>755
アスペ?
2022/07/21(木) 08:36:36.40ID:Qe7sC2ib
>>759
ん?なら
「dockerfile無しでcommitで構築したimageを運用するやつはアスペ」
ということでOK?

>>723が結論だと思うが。
761login:Penguin
垢版 |
2022/07/21(木) 08:37:06.92ID:Bsj4t+WP
>>760
?俺もそう思うが
762login:Penguin
垢版 |
2022/07/21(木) 08:37:29.32ID:Bsj4t+WP
なんだこいつ…
763login:Penguin
垢版 |
2022/07/21(木) 08:47:07.79ID:auevoZLN
「なにいってんだこいつ」と感じた時点でそいつは貴方に取っての変なおじさん
変なおじさんは真面目にかまうとうれション垂れ流しが加速します
2022/07/21(木) 09:23:46.51ID:GsFTK4Qs
>>757
大体aptが悪い

npmみたいな、package.jsonで緩いバージョン指定して
package-lock.jsonで厳密なバージョン指定、みたいな仕組みでもあれば便利なのに

現状は完全にバージョン固定、再現するには
apt-getコマンドで依存するパッケージも含めて「手動で」全部バージョン指定が必要でかなり無理がある

2022年にもなってビルドしたイメージ保存しないと完全再現できない時点で
aptは欠陥設計と思われ
2022/07/21(木) 10:27:09.89ID:vlVE8xx2
まぁ、せいぜい好きに使えばいいよw
2022/07/21(木) 10:42:17.46ID:TUoQzrYx
>>764
有意義ではないが自動化できないこともないはず
一度インストールしたあとパッケージの一覧を抽出してそれをDockerfileにインストールさせるよう書けばいい
シェルスクリプトかなにか使えば自動化できると思うよ
繰り返しだけど一般的ではないし脆弱性やバグ修正のためのアップデートに非常に脆い
2022/07/21(木) 21:51:41.49ID:WRyX2qON
すいません、超基本的な質問をさせてください。
最終的にクラウド上のDockerコンテナで動くプログラムを作りたいのですが、開発のやり方としてはローカル(自分の場合はWSL2を利用)にDocker Desktopを入れて、そこでコンテナを作成して開発することになると思います。
その場合、ソースコードの作成、編集は、VSCodeでコンテナ内のソースを編集すれば良い・・・という理解でよいでしょうか。
あるいは、コンテナなしの環境で作成したソースを、ローカルのコンテナにコピーして動作を確認し、さらに本番環境にデプロイする・・・という流れになるのでしょうか。
2022/07/21(木) 22:36:00.46ID:il8L9WXD
後者のほうが一般的
ぶっちゃけ好みの問題でしかなくて、コンテナで開発する派がよく議論に持ち出す環境統一論はほぼ詭弁だから真に受けちゃダメ
コンテナ内で開発したからといって開発に使ったのと同じコンテナで運用環境に持っていくわけではないからな
2022/07/21(木) 23:02:53.72ID:WRyX2qON
>>768
ありがとうございます!
なるほど。

このへんについて 解説本を見ても書かれていないし、検索してもなかなか見つけることができず悩んでいました。
助かりました。
2022/07/22(金) 04:04:09.02ID:If5VeNsz
コンテナ内のソースを編集したって、じゃあテストツールを動かしたり
のソースコードの静的チェックとかするのはどうするのよ?という話になる。
そうするとコンテナの中に開発ツールをバンバン入れることになる。

開発ツールをバンバン入れたコンテナを運用環境に持っていくわけない
動かすのに必要ないのに開発ツールに脆弱性とかあったらどうするんだ
運用環境用のコンテナは、プログラムが動く最低限の環境のものを作る

いずれにしろ開発環境は運用環境とは別なんだからどこで開発しようが関係ない。
コンテナの中に開発環境を作るのは面倒
開発環境ぐらい自分の好きにさせろ
771login:Penguin
垢版 |
2022/07/22(金) 04:34:33.65ID:fxFwWR2P
開発時はボリューム(バインドマウント)使え
2022/07/22(金) 23:17:31.01ID:fQ/P2OdR
>>770
ありがとうございます!
参考になります。
2022/07/22(金) 23:18:01.91ID:fQ/P2OdR
>>771
了解です。
774login:Penguin
垢版 |
2022/08/07(日) 14:06:03.02ID:b3XYsEGr
どっから始めればいいのか ナンツッテ
2022/08/07(日) 16:17:18.04ID:nwnr5HpC
どっからでも始めればよいです
2022/08/07(日) 17:32:25.99ID:eySkdpIh
初心者な質問ですみません。
DockerFile を使わずに、docker compose だけで python の環境を作りたいのですが、どう書けばいいでしょうか。
教えて下さい。
777login:Penguin
垢版 |
2022/08/08(月) 11:42:40.69ID:v6ZoXeRi
>>776
docker compose use python@3 でできるよ
2022/08/13(土) 01:29:20.68ID:odrCYI7w
docker run で--net networknameを指定したコンテナがあります。
内部的に自動でIPv4アドレスが割当てられました。

後から、このコンテナのIPv4アドレスを変更するにはどうすればよいでしょうか。

コンテナをstopしてから、
docker network connect --ip 新IPv4アドレス networkname コンテナ名
を実行し、再びstartしたのですが、IPv4アドレスは以前のままでした。
779login:Penguin
垢版 |
2022/08/13(土) 01:44:33.61ID:odrCYI7w
>>778
自己解決しました。

docker network disconnectしてから
docker network connect --ip 新IPv4アドレス networkname コンテナ名
する必要が有りました。

変更できました。
780login:Penguin
垢版 |
2022/08/18(木) 18:36:47.96ID:03kQuBxt
docker ps -a でコンテナ一覧が見られますが、
コンテナ数が多くなるとごちゃごちゃしてきます。
関連するコンテナをフォルダみたいにまとめて表示できるといいと思うんですが、
そういう機能ってありますか。
781login:Penguin
垢版 |
2022/08/19(金) 08:25:22.38ID:nGXf5LNw
別にいらないな。
というかその使い方あんまりだと思うけど。
2022/08/19(金) 09:42:09.15ID:JQBXRvrJ
いっぱい立てるならだいたいcomposeとかで見るしなぁ
2022/08/20(土) 10:12:59.13ID:UXdDDjoG
もう嫌になる
2022/08/20(土) 11:30:01.09ID:EJGm5ciw
嫌なら、止めたらエエのに
2022/08/21(日) 12:24:13.47ID:eSGM27+S
Dockerたまにしか使わないから詳細すぐに忘れる
その度に学習し直すから効率が悪い
786login:Penguin
垢版 |
2022/08/22(月) 09:44:16.49ID:8QKl+LiH
>>785
仕組みが変わってないのに学習とは?
一度使えるようにしたら覚えることないじゃん。
2022/08/22(月) 10:14:24.65ID:k2ZZTvgW
忘れるって書いてあるのに謎のツッコミ
2022/08/22(月) 10:20:21.79ID:HXgCPnKH
しかも問題はDockerそのものではなく785の記憶力や情報管理能力と言う
2022/08/22(月) 12:26:40.31ID:5QQpro3i
Ctrl-Rによる逆逐次検索で、履歴を遡れるし、忘れてもいつでも思い出せると思うけどな
2022/08/22(月) 12:30:02.10ID:eRYZ9Gh8
知らんけどそう言う発想すら無くて、他の人にその都度書かせたいかまってちゃんでは
2022/08/22(月) 15:05:21.18ID:PPn0Ft16
コマンドライン履歴なんか、一月二月もたてばなくなる。
2022/08/22(月) 15:11:24.06ID:ctYtGvs9
ほらやっぱり「ポックンにいい感じの情報整理おしえてよう」ってなかまってちゃんだ
docker全然関係ないし
793login:Penguin
垢版 |
2022/10/06(木) 07:31:18.13ID:qQofrB2b
CentOS 7のイメージから作成したコンテナなのですが、
/tmpの内容っていつ削除したらよいでしょうか。
docker stop/start containerはしますが、tmpの内容はクリアされないようです。
定期的に削除しても問題ないでしょうか。
2022/10/06(木) 10:11:26.04ID:R94dguKO
docker kill / docker run --rmでいい
それで問題になるようならコンテナの使い方が間違っている
795login:Penguin
垢版 |
2022/10/06(木) 14:24:10.80ID:qQofrB2b
>>794

docker stop/start containerでなくて、
その都度、コンテナを再生成せよということでしょうか。
2022/10/06(木) 16:05:09.55ID:Tt6+G4QW
回答としては
再起動じゃtmpに限らずクリアされない
定期的に削除しても問題ない
2022/10/06(木) 16:38:18.11ID:Tt6+G4QW
OSを起動したのになんで起動処理が走らないの?と思っての質問だったら
起動スクリプトは実行されないから、コンテナのENTRYPOINTでやる必要があるよ、と
798login:Penguin
垢版 |
2022/10/07(金) 05:55:47.39ID:Xp0jcCgm
>>796
ありがとうございました。
自分で消したいと思います。

>>797
docker run の指定で、tmpの内容を削除するようなスクリプトからスタートさせてみたいと思います。
そうすれば、docker startのタイミングでもtmpの内容をクリアできると思います。
2022/11/02(水) 21:07:14.95ID:c1zrLjt3
tmpを消す運用してるとコンテナが無駄に大きくなるよ
2022/11/02(水) 21:38:40.03ID:w/Yzrm5w
commitしなければ問題なくね
kill/runの方が運用上は圧倒的に推奨されるけど
2022/11/04(金) 18:27:13.63ID:mMC4ju53
しばらく前だが、公式はホストOSはUbuntuをお薦めって記載があったけど、
今でもUbuntu推奨なのかな

その記載は無くなってるようだけど、Rocky Linuxとかは公式的には
どういう扱いなのだろ
2022/11/04(金) 22:05:37.85ID:C//laVfe
開発環境ではVM含めホストとしてUbuntuが使われてるケースが圧倒的に多いから、開発チームによるテストもUbuntuファーストだという程度のことでしょ
実運用ではコンテナの実行にDockerエンジンを使うこと自体が絶滅危惧種なんでどうでもいい
2022/11/04(金) 22:16:37.03ID:gz881p++
たしかに今となってはどうでもいい
だからググっても情報が出てこない
専用の軽量ホストOSとかもあった気がするが
2022/11/04(金) 23:25:35.97ID:C//laVfe
そもそも今のDockerはcontainerdの薄いラッパーに過ぎないから推奨も相性もクソもないのでは
2022/11/05(土) 12:26:28.26ID:0teOCMfr
>>802
実運用だとなにが使われるのだろ

Dockerの知識が役に立たない、ということではないと思うけど、何だろ
2022/11/05(土) 14:16:31.22ID:LpcQn21z
containerdだよ
k8sや、Fargateのようなマネージドコンテナサービスはコンテナの実行に関してライフサイクル管理や実行環境の整備を行う仕組みを独自に持っているため、
Dockerという不要なレイヤを通す必要がなく、直接containerdのAPIを呼んでいる
2022/11/16(水) 08:11:44.22ID:8VK0hM+o
Docker便利だけど新人に導入させるのが大変でなかなかペイしない気がする
もうちょっとすんなり、どんな環境でも動いてくれるようにならないもんか
808login:Penguin
垢版 |
2022/11/16(水) 08:20:46.63ID:ESfT1dya
簡単にしたら「オレDockerできるんだぜ」の人達が困るだろ
2022/11/16(水) 08:37:45.13ID:cOruhFF1
自分だけできても仕方がないわけだが
2022/11/16(水) 08:46:51.64ID:C/Kd+qid
学習コストがかなりかかるよなぁ
2022/11/16(水) 12:02:05.10ID:asvZ2Vbc
>>807
それはなー、とりあえず、まずはVPSで用意してあげればええんやで
VPS上で、一度自分で動かせられるところから始まりやわ

Dockerコンテナがなんで動くとか、なんでできあがったとか、
もっとも簡易的なUnix系のchrootの仕組みが理解できんかぎり、
Dockerなんか、根本から理解できひんよ

chrootでやってみて、そっかプロセスがホストと分かれて見えないとこまるなーとか、
ネットワークセグメントも別々になっていてほしいなとか、
気づくから。
2022/11/16(水) 12:52:05.19ID:kERoO10b
Linux知らないなら色々ごっちゃになって大変かもだけど知ってれば簡単じゃね?
2022/11/16(水) 13:32:45.74ID:8VK0hM+o
あ、俺が言ってたのはちょっと違くて単に各々のPC上で開発環境欲しいだけなんだわ
それがWindowsだとめんどくさいじゃん、WSL入れたりゴチャゴチャしてるうちにわけわからんエラー出るしぐぐっても簡単には解決しないし
動いたら便利なんだが動くようにするまでが大変なのよね
2022/11/16(水) 13:36:57.51ID:asvZ2Vbc
>>813
それなー、Windowsだとめんどくさいから、WSLにしてもDocker Desktop for Windowsにしても、
結局Windowsはアレになっちゃうから、妥協してWindowsに合わせて動くようにするか、Windowsを窓から投げ捨てるしかないわ
2022/11/16(水) 14:04:31.50ID:8VK0hM+o
Dockerの仕組みを理解させたいわけじゃないんだよな、ていうか俺も大して理解してない
ただの便利なツールとして使えるようになる日が来ることを夢見てる
2022/11/16(水) 15:40:05.54ID:kERoO10b
へぇ、Windowsだと面倒くさいのか、Linux上でしか動かしたことないから知らなかった。
2022/11/16(水) 15:54:20.42ID:Lw8VqhSa
開発環境もLinuxだと困ることないよね
2022/11/17(木) 18:45:20.35ID:FWv2wWz+
Dockerってレンサバでも使えるのかな
さすがにroot権限ないと無理か?
819login:Penguin
垢版 |
2022/11/18(金) 07:35:46.07ID:NvLK5MEw
rootなしにどうやってコンテナ環境作んねん
2022/11/18(金) 08:32:15.44ID:l3QzdBXO
root権限持ってる人に、自分をdockerグループに入れといてもらう、でええんちゃう
2022/11/18(金) 08:37:22.36ID:Dat7/ZDk
podmanならroot権限なくても使えるんじゃね
Steam Deckで使えるらしいので
822login:Penguin
垢版 |
2022/11/18(金) 15:05:18.20ID:PRo/G1g9
https://i.imgur.com/w3kkFJu.jpg
https://i.imgur.com/TPQO8YW.jpg
https://i.imgur.com/F2xdgpB.jpg
https://i.imgur.com/22de65R.jpg
https://i.imgur.com/8iZEnpy.jpg
https://i.imgur.com/SLWjBBW.jpg
https://i.imgur.com/uSrpbWs.jpg
https://i.imgur.com/ONeBPVl.jpg
https://i.imgur.com/tNnUXRO.jpg
https://i.imgur.com/IhjMRLP.jpg
https://i.imgur.com/oCqEbqc.jpg
https://i.imgur.com/uiDbP03.jpg
2022/12/03(土) 13:44:30.67ID:USru8eTg
composeを使わない巣のDockerでrunしたディレクトリを後から確認する事って出来ない?

docker psでコンテナを確認して設定とかを見直したいと思っても
そのコンテナを起動するのに必要なファイルがどこにあったのかを後から知りたい。

mountとかしてるならinspectでファイルのパスが見れるし、composeならlabelにパスそのものが入ってるけど
コンテナ1つで済むような小規模なイメージだとcompose使わずに直にdocker runしてるの少なくなくて。
2022/12/03(土) 20:49:26.09ID:9e+n4Ras
>>823
なに言っているのかさっぱり分からんけど、
少なくとも、ホスト側のpsを普通に見たら終わりちゃうのか?
2022/12/03(土) 22:50:03.64ID:USru8eTg
>>824
ホスト側でとあるディレクトリに.envファイルを準備して以下のコマンドを実行します
docker run -itd --name hoge --env-file .env anyimage

1年後、envファイルに書いてあるはずのDBの接続先を一箇所だけ変更してコンテナ再作成したいけど
どのディレクトリで実行したか忘れてしまった。という状態です。
826login:Penguin
垢版 |
2022/12/04(日) 03:38:04.40ID:6USA/jwz
暗号解読班ー?
2022/12/04(日) 10:01:47.06ID:mthfWiMp
>>825
なるほどなー
たしかに、docker container inspectとかじゃ分からんもんな

コンテナ内(で動かしているユーザ)の環境変数を set コマンドとかで洗い出して、
該当しそうな .env を探すぐらいちゃう?
さらに、DBの接続先って分かっているんだったら、そのDBで具体的な何かで引き出せるはずやし

ちなみに、自分はそういう使い方をするときも、systemdを経由するから、路頭に迷うことがないな
2022/12/04(日) 10:07:07.17ID:R9tH6s/f
>>825
それだったら単純にfindコマンドで.env探して中を確認すればいいんでね?ワンライナーで実行できるっしょ。
829login:Penguin
垢版 |
2022/12/04(日) 18:21:01.65ID:kbFbC5H1
ベースイメージからもう一回作り直せば?
2022/12/04(日) 18:43:55.89ID:UYtGQm7P
>>825
そのdockerのプロセスのPIDを調べて
cat /proc/PID/cwd
とかすると何か出てくるのでは
2022/12/04(日) 20:18:46.38ID:ClUS6bs0
ホスト側にある.env無くしちゃったから、稼働中のコンテナがどんな変数を参照してるかわからないってこと??
832login:Penguin
垢版 |
2022/12/05(月) 07:25:22.37ID:z8Y/WApi
dockerコマンド使って本番でコンテナ動かしてんのかな?(笑)
2022/12/13(火) 08:59:02.97ID:W/mf14YZ
久しぶりにPodmanをインストールして3日ほど弄くり回してみたけどかなり出来が良くなったね
root権限いらないとか最高だしDockerから乗り換えてみる
2022/12/18(日) 00:59:13.35ID:ptXGnWcJ
docker hubの公式imageがupdateされたら通知するサイトとかツールとか何使ってる?
enso docker nofity とか crazymax/diun?
835login:Penguin
垢版 |
2022/12/18(日) 06:43:44.87ID:sIXUhLAE
githubでええやん
■ このスレッドは過去ログ倉庫に格納されています

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