English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Docker는 Linux 커널 기반으로 구축되었으며, 현재 주요 Linux 시스템에서는 모두 기본적으로 Docker를 지원하며 사용자 경험도 최적입니다. 물론, Windows 및 MacOS 플랫폼에서도 Docker를 지원하지만, Boot2Docker와 같은 가상화 도구를 통해 Linux 지원을 제공합니다.
이제 두 가지 방식으로 생성된 docker 이미지를 기반으로 컨테이너를 시작할 때의 차이점을 중점적으로 소개드리겠습니다. 관심이 있는 분들은 편집자와 함께 공부해보세요!
1.docker commit을 사용하여 생성된 이미지를 시작할 때 자신의 애플리케이션을 시작하는 스크립트를 로드할 수 있습니다. 예를 들어:
docker run -d -P tomcat7.0b:jdk1.6 /run.sh
마지막으로/run.sh은 tomcat 애플리케이션을 시작하는 것입니다. 이를 통해 컨테이너를 시작할 때 tomcat 애플리케이션도 함께 시작됩니다. 그렇지 않으면 컨테이너만 시작되고 자신의 애플리케이션은 시작되지 않습니다.
run.sh의 내용은 다음과 같습니다:
#!/bin/bash /usr/sbin/sshd -D & exec ${CATALINA_HOME}/bin/catalina.sh run
그리고 주의하십시오, 지금 이 컨테이너는 Docfile 파일을 기반으로 생성된 이미지 인스턴스를 인스턴스화한 것입니다. 그런 다음, 이 컨테이너를 기반으로 docker commit을 사용하여 새로운 이미지를 생성하면, 새로운 이미지를 기반으로 생성된 컨테이너는 여전히 자신의 애플리케이션을 시작하는 스크립트를 로드해야 합니다.
2Docfile 파일로 생성된 이미지를 사용하여 컨테이너를 시작할 때는 이 스크립트를 추가하지 않아도 됩니다.
FROM sshd3:ubuntu MAINTAINER waitfish from dockerpool.com([email protected]) ENV DEBIAN_FRONTEND noninteractive RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata RUN apt-get install -yq --no-install-recommends wget pwgen ca-certificates && apt-get clean && rm -rf /var/lib/apt/lists/* ENV CATALINA_HOME /tomcat ENV JAVA_HOME /jdk ADD apache-tomcat-7.0.69 /tomcat ADD jdk1.6.0_45 /jdk #ADD create_tomcat_admin_user.sh /create_tomcat_admin_user.sh ADD run.sh /run.sh RUN chmod +x /*.sh RUN chmod +x /tomcat/bin/*.sh EXPOSE 8080 CMD ["/run.sh"]
마지막 문장의 CMD는 이미지를 시작할 때 이 스크립트를 호출하는 것을 의미합니다.
위에서 설명한 것은 저가 여러분께 소개한 두 가지 Docker 이미지 생성 방법의 차이점을 요약한 것입니다. 여러분이 어떤 질문이나 의문이 있으면 댓글을 달아 주세요. 저는 즉시 답변을 드리겠습니다. 또한,呐喊 교본 웹사이트에 대한 여러분의 지원에 깊이 감사드립니다!