回答編集履歴
2
更に校正
answer
CHANGED
@@ -1,25 +1,24 @@
|
|
1
|
+
興味が湧いたのでネットで軽く記事を漁ってみました。
|
1
|
-
|
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のバイナリは
|
14
|
+
- Linuxのバイナリは基本的にELFで統一されるのでディストリビューションをまたいでも問題なし
|
12
|
-
- CPUの種類が違うと無理
|
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
|
-
|
36
|
+
Dockerで扱うにはこんな最適なディストリビューションはないでしょう。
|
37
37
|
|
38
38
|
代わりにマイナーなパッケージやライブラリを導入することが困難になるでしょう。
|
39
39
|
この辺のさじ加減を考えながらイメージのディストリビューションを選択してみて下さい。
|
1
情報を整理
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
|
-
|
1
|
+
ネットで軽く記事を漁った感じでは、Linuxのディストリビューションをまたいだ時に実行ファイル(バイナリ)に互換性があるの?…に関しては意外といけるという感じですね。
|
4
2
|
|
5
|
-
|
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
|
-
-
|
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
|
-
|
33
|
+
動作を保証する最小限の構成のLinuxで構わないと言えるでしょう。
|
30
34
|
|
31
|
-
|
35
|
+
コンテナで動かすなら必要最小限のファイルしかなくて構いませんので、
|
32
|
-
|
36
|
+
総量4MBしかないalpineはとても優秀なディストリビューションと呼べるでしょう。
|
33
|
-
キビキビとコンテナ作成、コンテナ削除、ビルドなどの要求にこたえてくれます。
|
34
37
|
|
35
|
-
ただし、必要最小限しか備わっていませんので、
|
36
|
-
マイナーなパッケージやライブラリを導入することが困難になるでしょう。
|
38
|
+
代わりにマイナーなパッケージやライブラリを導入することが困難になるでしょう。
|
37
39
|
この辺のさじ加減を考えながらイメージのディストリビューションを選択してみて下さい。
|