是否有必要为不同的操作系统使用不同的Docker容器

时间:2018-10-27 05:43:24

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

我是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"]

1 个答案:

答案 0 :(得分:0)

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

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

相关问题