【问题标题】:Is it necessary different Docker container for different os不同的操作系统是否需要不同的Docker容器
【发布时间】:2019-03-31 19:47:45
【问题描述】:

我是 Docker 新手。我对自己的理解几乎没有怀疑。这是我的理解。

Docker 通过为您的应用程序创建一个轻量级、独立、可执行的包来解决这些问题,其中包含运行它所需的一切,包括代码、运行时、库、工具、环境和配置

这是否意味着相同的容器映像将在不同的操作系统上运行?例如:

我希望下面的 DockerFile 将创建容器镜像并仅在 CENTOS 上运行。 如果我想运行我的应用程序不同的操作系统,那么我应该有不同的 DockerFile 配置,具体取决于操作系统。在这种情况下,docker容器的优势是什么?你能纠正我的理解吗?

FROM centos
ENV JAVA_VERSION 8u31
ENV BUILD_VERSION b13
# Upgrading system
RUN yum -y upgrade
RUN yum -y install wget
# Downloading & Config Java 8
RUN wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/$JAVA_VERSION-$BUILD_VERSION/jdk-$JAVA_VERSION-linux-x64.rpm" -O /tmp/jdk-8-linux-x64.rpm
RUN yum -y install /tmp/jdk-8-linux-x64.rpm
RUN alternatives --install /usr/bin/java jar /usr/java/latest/bin/java 200000
RUN alternatives --install /usr/bin/javaws javaws /usr/java/latest/bin/javaws 200000
RUN alternatives --install /usr/bin/javac javac /usr/java/latest/bin/javac 200000
EXPOSE 8080
#install Spring Boot artifact
VOLUME /tmp
ADD /maven/sfg-thymeleaf-course-0.0.1-SNAPSHOT.jar sfg-thymeleaf-course.jar
RUN sh -c 'touch /sfg-thymeleaf-course.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/sfg-thymeleaf-course.jar"]

【问题讨论】:

    标签: docker spring-boot docker-compose dockerfile docker-machine


    【解决方案1】:

    您刚刚提供的 Dockerfile 将创建一个 Docker 映像,它可以在所有操作系统上运行共享 Linux 内核,例如:Debian、Ubuntu、Centos、Fedora 等等。这是 Docker 的目的之一,能够在任何运行 Linux 内核的主机上运行相同的映像。

    但是,当您在 Dockerfile 中指定 CentOs (FROM centos) 时,将在 Docker 容器中运行的应用程序 将使用 CentOS 作为其操作系统。

    【讨论】:

    • 感谢@Serigu 的回复。因此,如果我希望我的应用程序在所有操作系统中运行,而不考虑任何操作系统,例如 windows、mac.linux 等。无需更改 Dockerfile。可能吗?对不起,我的问题很糟糕,我很新,这就是为什么。
    • @user414967 是的,您可以在此处指定的 Windows 机器上运行该容器:forums.docker.com/t/linux-container-on-windows-docker-host/… 如果您想在 MacO 和 Linux 上运行该容器,这也是可能的,事实上这就是我正在做的事情,我在我的 Mac 上创建 Dockerfile,然后构建容器,然后将其推送到 Docker 注册表,从那里将它拉到 Linux 主机上。我希望这会有所帮助。
    • @user414967 另一个 StackOverflow 成员也问了一个类似的问题,可以在这里找到:stackoverflow.com/questions/42158596/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 2017-09-28
    • 2014-10-22
    相关资源
    最近更新 更多