🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1248閲覧

コンテナ内に作業ディレクトリを作成してデバッグできるか

Por

総合スコア40

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/03/05 05:35

編集2021/03/05 06:09

よろしくお願いいたします。
私は最終的にクラウド上の作業環境、すぐに作れてすぐに壊せる開発環境が欲しくて調査しています。
VSCode関連については、Code-ServerやCoderについても触れてきました。

その調査の際、コンテナをデプロイすることと私が達成したいことで混乱してしまいました。湧いた疑問は以下の通りになります。
1.コンテナをデプロイできるということは、サーバー上でコンテナがrunしているということ?
2.であれば、中のコンテナや中のイメージが稼働しているということ?
3.であれば、OSが動いている=中のアプリケーションを使えるということ?
4.もしこの疑問が解消できたら、コンテナをAWSやHerokuなどのPaaSサービスにデプロイすれば、中のイメージ≒OSや作業ディレクトリやインタプリタが稼働することでデバッグできる?
5.その作業ディレクトリにはSSH接続などリモート開発ができる?

ですので
1.そもそもコンテナをデプロイするとはどういうことなのか、前述の私の捉え方で合っているのか
2.合っている場合、この方法でVSCodeを使えるか
3.あるいは、手元のローカルのVSCodeからコンテナ内のディレクトリを作業ディレクトリとして、コンテナ内のインタプリタでデバッグできるか

教えていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2021/03/05 07:43 編集

そもそも何をどこまで理解してるのかというのが見えないし、日本語としての文脈もチグハグでようわからん。 > 1.コンテナをデプロイできるということは、サーバー上でコンテナがrunしているということ? あなたは「デプロイ」を何だと思ってるんだろう。 最低限その言葉を意味をググったりして調べたのかどうか。 その上でこの文脈で何をしたらその「デプロイ」にあたると考えているのか、等。 > 2.であれば、中のコンテナや中のイメージが稼働しているということ? 1の「runしているということ」→「であれば」と受けてるなら、「runしている」と「稼働している」の違いはあなたの中でどうなってるの? > 3.であれば、OSが動いている=中のアプリケーションを使えるということ? そもそもコンテナって何するものか理解してますか? > 4.もしこの疑問が解消できたら、コンテナをAWSやHerokuなどのPaaSサービスにデプロイすれば、中のイメージ≒OSや作業ディレクトリやインタプリタが稼働することでデバッグできる? デプロイしようとしているものは具体的に何で、どんなネットワークの経路になってんのか、どんなプロトコルを使ってるのか、とかわからんで答えられる人がいるわけない。 > 5.その作業ディレクトリにはSSH接続などリモート開発ができる? 「作業ディレクトリ」って何?どういう構成でどこにそれが確保されてる前提なんだ? と見事に意味不明なので、質問文を修正してわかりやすく説明してほしい。
Por

2021/03/05 09:18

ご指摘ありがとうございます。 1. 調べてみたところデプロイするということは、サーバーにプログラムを設置する、と認識しておりまして この文脈では「コンテナをデプロイする」はつまり、「コンテナをサーバーに設置して稼働(run)させる」を意味すると認識しておりました。 2. docker run ...していれば、一般的なクライアントPCでOSが稼働しているイメージでした。 OSが稼働していたら、アプリが使えるから、私がやりたいことに繋がりそうと考えました。 3. コンテナは「仮想的な空間の中にOSイメージやアプリケーションを包み込めるものだが、カーネルなど一部ホストOSに依存する部分があるから独立しているわけじゃない」「持ち運べるようにパッケージできるもの」と理解しております 4. デプロイがコンテナをサーバーに設置することで正解なら、 デプロイしようとしているものはコンテナ ネットワークはコンテナが複数になったときのことしかまだ存じ上げず、コンテナひとつだけを設置するのであれば考えておりませんでした、失礼いたしました。 同様にプロトコルについても調査しておりません。 5. 「仮想的な空間の中にOSイメージやアプリケーションを包み込めるもの」だとしたら、ディレクトリが作成できると仮説を立てて調査しておりました。 構成としましては、コンテナにディレクトリ一つを作るだけでしたので、OSが用意する(と想像する)ユーザーディレクトリ配下にディレクトリ一つ作るところから始めたいと思っておりました。 コンテナをサーバー上に設置できれば、そのコンテナ内の作成したディレクトリに何かしらの接続も可能だろう、と踏みながら調べております。 調査段階でのご質問で穴だらけで申し訳ありません。 「サーバー上にOSやインタプリタをインストールしたコンテナを設置して、その中で作業したい」とも表現できまして もしこのご回答で追加のご指摘を賜われましたら、とてもありがたいです。 引き続きよろしくお願いいたします。
guest

回答1

0

ベストアンサー

質問で指摘されているように、用語がいろいろごちゃごちゃだったりしますが、基本的にあなたの考えている通りだと思います。

  • Dockerコンテナというのは小さなPC/サーバのようなものです。認識のとおりカーネルなどの一部をホスト(Dockerを動かしているサーバ)に依存していますが、OSがインストールされた単体のサーバなどと同じものだと考えてOKです。

  • ネットワークさえ調っていれば、そのコンテナにsshで接続してそのコンテナ内の環境(homeディレクトリとか)にアクセスしていろいろやってみることはできますし、やったことは外には影響しません。 Dockerコンテナの中で開発作業を行なうこともできます。

  • 失敗してそのコンテナの環境を壊してしまっても、それを破棄して新しくデプロイすれば始めの状態に戻せます。 いろいろやってみるにも適しています。

2.合っている場合、この方法でVSCodeを使えるか
3.あるいは、手元のローカルのVSCodeからコンテナ内のディレクトリを作業ディレクトリとして、コンテナ内のインタプリタでデバッグできるか

できますよ。 だた、AWSなど外のクラウドでやろうとすると、IPアドレスが必要だったり、ネットワーク回りの設定をちゃんとしなければならないので、それなりに準備が必要になります。

投稿2021/03/05 11:29

TakaiY

総合スコア13765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Por

2021/03/05 12:43

用語がわかりづらいなかで閲覧、ご回答いただき、ありがとうございます。 まずできることがわかったので、調査を前にすすめることができるようになりました。ありがとうございます。 また、今回用語についても調べ直し、質問させていただくことを改めて意識する必要があることを教えていただきました。 改めてご回答ありがとうございます。 引き続きよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問