簡體   English   中英

如何創建一個只能在 centos 上運行的 docker centos 映像

[英]how to create a docker centos image that would only run on centos

我是 docker 新手,我仍在努力學習這些概念。 在我的 centos 機器上,我創建了一個測試映像,其中包含一個 C 編譯的可執行文件。 根據我對 docker 的理解,我的意圖和期望是圖像只能在 centos 機器上運行。 這是我的 docker 文件:

FROM centos:7
WORKDIR /opt/MYAPPS
COPY my_hello .
CMD my_hello

該圖像在我創建的 centos 機器上構建並運行良好。 然后我將此圖像推送到我的存儲庫並將其拉到另一台 centos 機器上,並且也能正常工作。 到現在為止還挺好。

正如我所提到的,我希望這張圖片僅限於 centos。 為了證明這一點,我嘗試將它拉到其他操作系統、我的 ubuntu 和我的 Windows 上。 令我驚訝的是,它對兩者都有效。 顯然我錯過了一些東西。 要么我沒有掌握 docker 的概念,要么我使用了錯誤的“FROM”圖像。

正如我所提到的,我希望這張圖片僅限於 centos。

不:您在映像中放置的只是可執行文件運行的依賴項,但最終,一切都將解析為系統調用。

這意味着您的映像受到主機內核的限制,因為正在運行的進程正在對所述內核進行系統調用。
(如“ 迷人的 Linux 系統調用世界”中所示)

https://478h5m1yrfsa​​3bbe262u7muv-wpengine.netdna-ssl.com/wp-content/uploads/2015/12/image002.png

只要內核(這里是 Linux,甚至在 Windows 上,通過 HyperV)支持您的系統調用,您的程序就會在這些主機上運行。
請參閱“ Docker 如何使用不同內核運行發行版? ”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM