teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

更に校正

2018/04/30 17:19

投稿

miyabi-sun
miyabi-sun

スコア21461

answer CHANGED
@@ -1,25 +1,24 @@
1
+ 興味が湧いたのでネットで軽く記事を漁ってみました。
1
- ネットで軽く記事を漁った感じでは、Linuxのディストリビューションをまたいだ時に実行ファイル(バイナリ)に互換性があるの?…に関しては意外といけるという感じですね。
2
+ Linuxのディストリビューションをまたいだ時に実行ファイル(バイナリ)に互換性があるの?…に関しては意外といけるという感じですね。
2
3
 
3
4
  参考記事:
4
5
 
5
6
  - [5. Linuxでのバイナリ互換 - The Winux Project](http://www.eno538.com/winux_project/winux_project_5.html)
6
7
  - [linuxって意外とバイナリ互換性高い - スラドのコメント欄](https://srad.jp/comment/2224991)
7
8
  - [Linuxはディストリビューション間でバイナリ互換性はあるのか - 知恵袋](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11180814326)
9
+ - [DOCKER OFFICIAL IMAGES ARE NOW MULTI-PLATFORM - docker blog](https://blog.docker.com/2017/09/docker-official-images-now-multi-platform/)
8
10
 
9
11
  情報をまとめるとこんな感じです。
12
+ どれもDockerで使う場合は障害という訳ではないようですね。
10
13
 
11
- - LinuxのバイナリはELFが吐き出される、基本的にバイナリ構成は同じ
14
+ - Linuxのバイナリは基本的にELFで統一されるでディストリビューションをまたいでも問題なし
12
- - CPUの種類が違うと無理だけど基本的にはx86だろうし大抵大丈夫
15
+ - CPUの種類が違うと無理、しかしDockerはx86-64専用で、他のCPU…例えばARMは2017/09によやく専用イメージが実装されたら
13
16
  - ディストリビューションが違う場合、ライブラリのバージョン等が異なり詰むケースがある
14
17
 
15
- Dockerはライブラリは動く本物を使うので問題ない、
16
- バイナリの構成は常にELFでディストリビューション間の違いはない。
17
- CPUは基本的にインテルもAMDもx86-64だろうから普通に使う分には問題ない。
18
-
19
18
  > 「OSの名前はついているが、ベースイメージはOS的役割をするのではなく、そのOSっぽい環境を整える(ディレクトリ構成をそのOSっぽくするなど)のが役割」と予想しているのですが、どうなのでしょうか?
20
19
 
21
20
  その通り、DockerはそもそもLinuxでしか動作しません。
22
- Linuxで動かすならディストリビューションが違っても動くから大丈夫だよね
21
+ Linuxで動かすならディストリビューションが違っても他の条件を同じにしてやれば動くよね
23
22
  …という前提が元になっています。
24
23
 
25
24
  Docker for WindowsやMacがありますが、
@@ -32,8 +31,9 @@
32
31
  コンテナに入っているアプリが満足に動きさえすれば、
33
32
  動作を保証する最小限の構成のLinuxで構わないと言えるでしょう。
34
33
 
34
+ alpineは総量4MBしかありません。
35
- コンテナで動かすなら必要最小限のファイルかなく構いませんの
35
+ コンテナをぼこぼこ立ち上げても、削除しても一瞬す。
36
- 総量4MBしかないalpineとても優秀なディストリビューションと呼べるでしょう。
36
+ Dockerで扱うにこん最適なディストリビューションはないでしょう。
37
37
 
38
38
  代わりにマイナーなパッケージやライブラリを導入することが困難になるでしょう。
39
39
  この辺のさじ加減を考えながらイメージのディストリビューションを選択してみて下さい。

1

情報を整理

2018/04/30 17:18

投稿

miyabi-sun
miyabi-sun

スコア21461

answer CHANGED
@@ -1,8 +1,6 @@
1
- 単純にLinuxの実装の一つだからです。
2
- [ディストリビューション](https://ja.wikipedia.org/wiki/Linux%E3%83%87%E3%82%A3%E3%82%B9%E3%83%88%E3%83%AA%E3%83%93%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3)は実際には単なる方言です。
3
- 乱暴にカテゴライズしてしまえば、イティブLinuxがあパッケジ管理ステムとしてdeb積めばDebianだし、RPMを積めばRedHat系というわけです。
1
+ ットで軽く記事を漁た感じではLinuxのディストリビューションまたい時に実行ファイル(バイナリ)に互換性があるの?…に関ては意外といけるという感じです
4
2
 
5
- ネットで軽く記事を漁った感じだと、Linuxのディストリビューションをまたいだ時に実行ファイル(バイナリ)に互換性があるの?…に関しては意外といけるという感じですね。
3
+ 参考記事:
6
4
 
7
5
  - [5. Linuxでのバイナリ互換 - The Winux Project](http://www.eno538.com/winux_project/winux_project_5.html)
8
6
  - [linuxって意外とバイナリ互換性高い - スラドのコメント欄](https://srad.jp/comment/2224991)
@@ -12,11 +10,17 @@
12
10
 
13
11
  - LinuxのバイナリはELFが吐き出される、基本的にバイナリの構成は同じ
14
12
  - CPUの種類が違うと無理だけど、基本的にはx86だろうし大抵大丈夫
15
- - Linuxのディストリビューションが違っていても、ライブラリさえれば基本的にはOK
13
+ - ディストリビューションが違う場合、ライブラリのバージョン等が異なり詰むケースが
16
14
 
15
+ Dockerはライブラリは動く本物を使うので問題ない、
16
+ バイナリの構成は常にELFでディストリビューション間の違いはない。
17
+ CPUは基本的にインテルもAMDもx86-64だろうから普通に使う分には問題ない。
18
+
17
19
  > 「OSの名前はついているが、ベースイメージはOS的役割をするのではなく、そのOSっぽい環境を整える(ディレクトリ構成をそのOSっぽくするなど)のが役割」と予想しているのですが、どうなのでしょうか?
18
20
 
19
21
  その通り、DockerはそもそもLinuxでしか動作しません。
22
+ Linuxで動かすならディストリビューションが違っても動くから大丈夫だよね?
23
+ …という前提が元になっています。
20
24
 
21
25
  Docker for WindowsやMacがありますが、
22
26
  その本質はハイパーバイザ等の準仮想化技術で超軽量のLinuxを動作させて、その中でDockerを導入、ホストマシンのDockerコマンドを内部に注入するという実装になっているようです。
@@ -25,13 +29,11 @@
25
29
 
26
30
  > alpineがいいとネットで見た
27
31
 
28
- ここまで行けば分かでしょうけど
32
+ コンテナに入っていアプリが満足に動きさえすれば
29
- コンテナに入っているアプリが満足にきさえすれば、動作を保証する最小限の構成のLinuxで構わないと言えるでしょう。
33
+ 動作を保証する最小限の構成のLinuxで構わないと言えるでしょう。
30
34
 
31
- aptパッケージ等がもりもり入ったUbuntuやDebianより
35
+ コンテナで動かすなら必要最小限のファイルしかなくて構いませんので
32
- 必要最小限でまとまってalpineの方がコンテナのファイルサイズ小さく、
36
+ 総量4MBしかないalpineはとて優秀なディストリビューションと呼べるでしょう。
33
- キビキビとコンテナ作成、コンテナ削除、ビルドなどの要求にこたえてくれます。
34
37
 
35
- ただし、必要最小限しか備わっていませんので、
36
- マイナーなパッケージやライブラリを導入することが困難になるでしょう。
38
+ 代わりにマイナーなパッケージやライブラリを導入することが困難になるでしょう。
37
39
  この辺のさじ加減を考えながらイメージのディストリビューションを選択してみて下さい。