質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Docker

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

Q&A

4回答

1720閲覧

DockerでRailsを構築した場合のOSについて

S_O

総合スコア16

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Docker

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

1グッド

1クリップ

投稿2019/01/04 02:34

編集2022/01/12 10:55

dockerを利用した場合のOSは何が使われているのかがイマイチわかりません。

例えばruby on railsをdockerで構築しようとした場合
色々なサイトを確認して見ると、以下のように
特にOSのイメージをpullしている訳でもない中でapt-getを記述していることが多いです。

Dockerfile

1FROM ruby:2.3.3 2RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs 3RUN mkdir /myapp 4WORKDIR /myapp 5COPY Gemfile /myapp/Gemfile 6COPY Gemfile.lock /myapp/Gemfile.lock 7RUN bundle install 8COPY . /myapp

正直あまりOS周りの知識がないのですが
調べるとdockerはLinuxがベースになる形で
aptはパッケージ管理ツールでubuntuにて使われ
似たようなパッケージ管理ツールのyumはcentOSにて使われるとのことでした。

上記のDockerfileの場合には特にosの指定がないのでLinuxが使われるのかと思いますが
①なぜ、ubuntuで使われるaptがrailsでの環境構築に使われているのか? (ubuntuはLinuxディストリビューションから作られたOSだからLinux環境でもaptが使えるのか?)
②なぜ、あらゆるサイトでyumではなくaptを使っているサイトが多いのか?(個人的に調べた中でaptがとても多い印象があったため)

がわかりません。
有識者の方々ご確認よろしくお願いいたします。

witchy👍を押しています

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

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

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

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

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

guest

回答4

0

Docker Hubで確認できます。

対象のイメージを探し、DockerfileFROMに記載があります。

以下参考になると思います。
https://teratail.com/questions/142866

以下追記

質問への回答となります

①なぜ、ubuntuで使われるaptがrailsでの環境構築に使われているのか? (ubuntuはLinuxディストリビューションから作られたOSだからLinux環境でもaptが使えるのか?)

元のイメージがDebian系だからです。Ubuntuは多い気がします。また、サイズを抑えたDocker用のDebian系イメージAlpine Linuxが人気です。
Debian系なのでaptが使えます。RHEL系では使えません。

②なぜ、あらゆるサイトでyumではなくaptを使っているサイトが多いのか?(個人的に調べた中でaptがとても多い印象があったため)

①の通り、Debian系だからaptです。

少し古い記事ですが、UbuntuとCentOSどっちがいいの?正しいサーバOSの選び方にある通り、日本ではRHEL系、海外ではUbuntuが多く利用されている傾向にあると思います。
私も国内の仕事では、お硬い業界ではほぼ全てRHELかなーと思います。(もしくは質問とは関係ないですがHP-UXとか)。

投稿2019/01/04 03:51

編集2019/01/05 12:38
moonphase

総合スコア6621

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

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

S_O

2019/01/04 05:39

ご回答ありがとうございました。dockerfileみたところDebian/alpineが使われているようですね。! imageを使う際には公式でもdockerfile見るようにしようと思います。
guest

0

興味を持ったので、docker の記事を Google で検索して、著者の環境を投稿記事などからわかる範囲でしらべてみると、使用環境が判明した中で半分強の方が Windows PC を使われている状況と思われました。

Windows で Docker を使っていると仮定して、Docker for Windows のドキュメントを読んでみました。

Docker for Windowsドキュメント の手順の中で、

  1. Pull an image of the Ubuntu OS and run an interactive terminal inside the spawned container:

docker run --interactive --tty ubuntu bash

と記載されており、マニュアルでは、Docker の起動の説明は、Docker公式の Ubuntu イメージを使って起動する説明になっています。

そのため、

  • マニュアル通りに環境構築して、Docker で使用するイメージファイルに Ubuntu イメージを使われている方が多いと思われる。
  • 記事の著者等も公式ドキュメントを参考にされていると思われるので、公式ドキュメントに書かれている内容に準拠しているため、Ubuntuベースが多くなっている。

のではないかと思われます。

投稿2019/01/04 04:19

編集2019/01/04 04:20
CHERRY

総合スコア25171

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

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

S_O

2019/01/04 05:40

ありがとうございます!
guest

0

OSという意味では、Docker内のプロセスは親OSの中で動いています。

ディストリビューションの違いというのは、簡単に言うと、どういうディレクトリ構成で、どういうファイル配置で、どの設定ファイルにどういう記述があるか、の違いです。
なので、CentOSのあるディレクトリ以下に、ubuntuと同じディレクトリ・ファイル構成のファイル群を置いて、そのディレクトリ内に閉じた世界でプロセスが動けば、ubuntuのコマンドが使えます。
参考:Wikipedia chroot

プロセスも同様にDocker内のプロセスからは、同じDocker内のプロセスしか見えないようになってます。
参考:Wikipedia LXC

投稿2019/01/04 02:48

otn

総合スコア84423

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

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

S_O

2019/01/04 03:52

回答ありがとうございます。 イマイチrubyのイメージとの関係性が理解できなかったのですが 以下などのいくつかの記事にrubyの公式イメージは「Debian」が使われているというのがありました。 それでrubyイメージでdockerfileを記述している場合は、aptコマンドを使うということなのでしょうか? それでしたらすごいわかりやすいかなとは思っています。 http://gorlem.hatenablog.com/entry/2018/02/04/155048
otn

2019/01/04 04:12

rubyイメージかどうかというのはディストリビューションとは関係無いですね。 aptコマンドを使うディストリビューションのOSの入ったディレクトリツリーの中にRubyやRailsをインストールして、そのディレクトリツリーを、別のOS、例えばCentOSのとあるディレクトリー配下に全部コピーして、そのディレクトリでDockerを動かせば、そのDocker内ではaptコマンドが使えます。 逆も同様で、yumを使うディストリビューションのOSにRubyとRailsをインストールして、それを丸ごとDebianOSのどこかのディレクトリーにコピーしてそこでDockerを動かせばyumコマンドが使えます。 Wikipedia chroot は読みましたか?
S_O

2019/01/04 05:38

コメントありがとうございます。Wikipedia初心者の僕には難しかったためまた色々確認してから理解していきたいと思います。ありがとうございました!
guest

0

とりあえず今質問者さんが使われてるイメージはDebianですね。

https://github.com/docker-library/ruby

オフィシャルイメージはDebianがデフォルトでalpineも選択できるものが多いという印象です。

投稿2019/01/04 05:26

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

S_O

2019/01/04 05:47

ご回答ありがとうございます。 無知で申し訳ないのですが例えば「ruby:2.5.1」の公式イメージを使っている場合は 以下のgithubレポジトリではどこがイメージの元となるDockerfileなのでしょうか? dockerhubではタグでは「ruby:2.5.1」はあるようなのですが githubレポジトリへのリンクが特に見つからず。。 またrubyの公式イメージのgithubレポジトリにも該当するものがないような気がしているのですが https://github.com/docker-library/ruby/tree/master/2.5
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問