コンテナ型仮想化Dockerスレ その2
レス数が950を超えています。1000を超えると書き込みができなくなります。
コンテナ型仮想化を提供するDockerスレ
Dockerは
1. アプリケーションコンテナです。 システムコンテナではありません。
2. アプリケーションのポータビリティを目的として利用します。
3. 仮想マシンではありません。 仮想マシンとは目的が異なります。
4. 仮想マシンと共に使用することが多いです
5. WindowsとmacOSの両方で動きますが、どちらも仮想マシンを利用します。
6. コンテナの中にSSHでログインしようとか考えないでください。そういうものではありません。
7. コンテナの中では原則として一つのアプリケーションを実行します。
8. Dockerfileを使ってイメージを作ります。Ansibleとかやめてください。
9. イメージを作るのはアプリケーション開発者の仕事です。インフラの仕事はつくられたイメージを動かすことです。 docker composeでコンテナを起動するかしないかをコマンドライン引数以外で選択することは可能ですか?
例えばdocker-composeにa、b、cの3つのサービスが定義されてるんだけどa、cだけを起動したい
コマンドラインで指定できるのは知ってるけどそうじゃなくてdocker-compose.ymlで指定したい >>902
そんなあなたのために、フォーマットバージョン3.9からサービスにprofileを指定することができるようになりました docker desktop でホストコンピュータからのアクセスでパケット詰まりしやすい
コンテナ間アクセスだとほとんど詰まることないんだが
どうにかならんだろうか 「docker-compose.yml」に次のように書かれていて、コンテナには
公式の「FROM php:7.3-apache」を使っています。
apacheのログを見るとアクセス元のIPアドレスが「docker_default」ブリッジの
IPアドレスになってしまうのですが、接続元のIPアドレスをログ出力できないでしょうか?
ググってCDN経由のときは「%{X-Forwarded-For}」を指定すれば接続元IPが出るとあったのですが
CDNを使ってないため「%{X-Forwarded-For}」の中身は空でした。
==========docker-compose.yml==============
version: "2"
services:
api:
container_name: api
build: ./api
restart: always
ports:
- 80:80
volumes:
- ./www:/www
networks:
- default
networks:
default:
driver: bridge 初心者です。すいません質問させてください。
既存のコンテナを落としてきてImageから展開しています。
あるふぁいるを展開したコンテナのファイルと置き換えたいのですが、
どの様な手法が正しいのでしょうか?
既存展開後のコンテナに転送して、コンテナにログインしてから置き換えをしても、
コンテナの停止、起動をしたら対象のファイルがなくなっていました。
Images の中に入れるのが正解なのか、コンテナ展開時にファイルを取り込み置き換えをする
方法があるのか判っていません。
どこかに参考になるページがあれば教えてほしいです。
※ファイルは不定期で更新するので、コンテナ展開時に自動で取り込み置き換えをする
方法が望ましいと考えています。 自分も最初その疑問にブチ当たった。
今ならYoutubeの2~4時間程度の無料動画を見れば解決すると思うからおすすめ。 まず「コンテナを展開する」という用語が分からない
AWS, Github, Gitlab, CircleCI など、
すべてのシステムがコンテナを使っているのは、immutable・破棄可能だから
コンテナ内には状態を持てないから、
関数型言語と同じで、プログラミングしやすい
状態を持つには、Data Volume という領域か、
Data Volume Container というデータ専用コンテナを使う。
それらは、複数のコンテナから参照できる
この本が最も簡単。
自宅ではじめるDocker入門[改訂版]、浅居 尚、2021/4 >>906
Amazon Linux 2, Ruby on Rails, Nginx, Puma の構成では、
Nginxの変数・$remote_addr が、クライアントのIP アドレスみたい
Apache にも、同じような変数があるのでは? windowsのwsl2でdockerを使用しています
wsl2で作成したディレクトリと、wsl2のcontainer内で作成したディレクトリだと、
前者はwsl2ユーザ権限、後者はroot権限になってしまうので、
リモートvscode内でcontainer内のファイルが編集できなくなります
その都度、sudo chown -Rを使用して権限を統一させているのですが、
毎回やるのは手間でして・・・
windowsのwsl2でdockerを使用している方は皆さん、
権限の問題はどうされているのでしょうか・・・?
どなたか心当たりある方いらしたら、ご教授をお願いいたしますm(_ _)m 一時ディレクトリとかを除いてコンテナの中にディレクトリとか作らないからなあ
プログラムのバイナリの中にディレクトリができるっておかしいでしょ? レスありがとうございます
もしかして、Docker内でプログラミングをする方は少ないのでしょうか?
親のWindowsの環境がぐちゃぐちゃになるのを防げるので良いなと思い使用していたのですが・・・
Dockerの主な用途は環境構築と実行のみでコードを書くことは基本しないということでしょうか
よくよく考えるとDocker内ではなくてWSL2内でもプログラミング自体はできますね 普通コンテナ内に、ディレクトリなど作らない
コンテナは削除可能disposable で、状態を持てないから、何も保存できない。
データは、コンテナの外部に保存する
data volume、データ専用コンテナ、volumes-from とか
>>909
に書いた本が、最も簡単 >>911
Dockerfile USER 1000 >>914-915
お教え頂いた単語を調べてみたところ
昔から普通にある問題?だったのですね・・・
自分なりに調べてはいたのですが中々回答を得られなかったところ
何とかいけるようになりました!
書籍の方もぜひ調べさせて頂きます
教えて頂きありがとうございました! >>916
「問題」やなくて、ふつうに「仕様」やからね。 WSL2 では、プロジェクトはWindows 側・NTFS ではなくて、Linux 側・ext4 へ置く
Docker はLinux だけの技術だから、
NTFSではファイルシステムが異なるから、遅くなるとか、
確か、WSL2, Docker の説明に書いてあった あわしろを召喚しちまうからLinuxの話題はやめとけ 長時間プログラムを動かし続けたらエラーとなり、その後一切正常に動かなくなったので調べたら /dev/sda1 100% となっていて、これが原因ではないかと思い調べています。
プログラムはログ出力やDBへのデータの登録やファイル作成などをしておらず、何が容量を圧迫しているかわかりません。
わかる方いましたら原因と対策を教えてください。
参考になる記事でもかまいません。
よろしくお願いします。 何も食べてないのにお腹いっぱいになりましたと言われてもな
食ったんだろ コンテナ内でプログラムを動かし続けているだけでホストの/dev/sda1の容量が増え続けて100%になってしまうのです。 テンポラリファイル作ってお掃除忘れてんじゃないの
てか圧迫してるファイルの種類や内容調べれば手がかりわかるはず 自宅ではじめるDocker入門[改訂版]、浅居 尚、2021
という本には、
data volume(DV), data volume コンテナの2つがあって、
docker rm で、DVコンテナを消してから、
docker volume rm で、data volumeを消すと書いてある
つまり、DVコンテナを消しただけでは、data volumeは消えていない。
例えれば、data volumeが実体で、DVコンテナはそこへのリンクみたいなもの
リンクだけ消しても、実体は残り続けているという事 ここはためになるなぁw
俺は今更docker使おうかなと思ってるじーさんだけど
このスレでの言い争いもふくめて
使用すべきシーンや注意点などとても参考になった
ありがとう住人さん Linux 板にも、Docker スレがあるかも
ただ、Linux板は、あわしろがどうしたこうしたとか、
荒らしが多いから、規制されて書き込めない YouTube で有名な雑食系エンジニア・KENTA の、
初心者向けRuby on Rails サロンによって、
半年で10年やってるプロよりも、技術力が上になる道筋を作った。
こういう勉強方法で半年で、Railsエンジニアになって転職できますよ
2, 3年前は、Rails, Heroku, Bootstrap, jQuery だけで、すごかった
それが今では、Docker, AWS, GCP, Terraform, CircleCI, Github Actions,
React, Vue.js, TypeScript みたいなw
誰でも、Docker, AWS 出来ますよね
Dockerを知らない香具師は、技術者ではありませんとか、
皆、くろかわこうへいのAWSサロンにも入ってますよね、みたいなw
ウェブ開発未経験者の進化が桁違い! 最近初めて使ってメモリバカ食いやんて思ってたけどアップデート治ったっぽい? docker初心者でdocker desktop始めたンダが、質問させてください
ローカルの設定ファイルにアプリのパス書かずに省略したらローカルにフォルダ出来ないんですかね?後でローカルにフォルダ追加するには設定ファイル書き換えてビルドし直すといいのでしょうか? ドカデス使わなくなったんだがPC立ち上げると毎回自動で起動するけどどうやってオフにすんだろう >>936
General設定のStart Docker Desktop when you loginのチェック外すだけだったと思う 初心者ですが個人開発でDocker使ってる人って多いですかね?
自分がDockerってなんなのか調べた限りだと不必要かと思うのですが >>939
Dockerとは仮想環境上に開発環境を作ることですよね?
それでその中で開発を行うとみんなが同じ環境で開発できると
ただ個人開発だと開発環境=個人の環境になるのでわざわざ仮想環境の上で開発しなくても良いかと >>940
それあなたの場合が開発環境レベルのものが要らないからですよ
例えばExcelのVBAとかなら要らんですな >>941
開発環境はVisualStudioCommunityを使っています 例えば個人開発でDockerが必要なケースって何がありますか? maui開発してるだけなら100%不要
さっさと巣に帰れ >>944
では個人開発で必要なケースを教えていただいてもいいでしょうか? お前みたい奴には一切縁がない代物だからとっとと帰れ 個人開発でDockerを導入して得られるメリットなど教えていただけますか? 一切ない
だからお前みたいな恥知らずはとっととこのスレから去れ Ruby on Rails で転職用ポートフォリオを作る際、
Heroku, AWS など本番環境がLinux なので、
Windows 10, WSL, Linux を使う
Linuxのローカル開発では、多言語バージョンマネージャーのanyenv, asdf または、Docker を使う。
リモート開発なら、Cloud 9 を使う
ここで、初心者向けの本ではLinuxではなく、
Windows環境用のMSYS2/MinGW を使うことが多い
一方、企業では、採用を選択した技術で判断するので、
MSYS2/MinGWを使うと、本番環境ではないので素人と判断される
同様に、Django, Laravel を使っても、
なぜRailsを使わなかったのか聞かれて、返答に困る
まあ、AWS機械学習の資格を持っているとか、採用企業を圧倒するだけの実力があれば別だけど VSのインストールが開発環境構築な時点で
dockerとか要らん人やん
そもそもdockerの使い道もわかってないはず
わかってたらこんな質問せんもんね podmanでXDG_RUNTIME_DIRが/run/user/0でどうのってエラー出るのってとりあえずenvを
XDG_RUNTIME_DIRが/run/user/1000に書き換えればいいの?
なんか無理やり感あるからどうなんだろって感じなんだけど Windows環境でPodmanDesktop入れるとDockerDesktopが起動しなくなるんだけど
デフォルトのwslディストリビューションが問題っぽい
これ共存の方法とかない? レス数が950を超えています。1000を超えると書き込みができなくなります。