English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
DockerはLinuxカーネルの上に構築されており、現在の主流のLinuxシステムではすべてDockerを原生サポートしており、使用感も最高です。もちろん、WindowsプラットフォームやMacOSシステムでもDockerはサポートされていますが、Boot2Dockerなどの仮想化ツールを使用してLinuxをサポートしています。
以下では、2つの異なる方法でdockerイメージを作成する際の、コンテナ起動時の違いを詳しく紹介します。興味を持たれた方、編集者と一緒に学んでみてください!
1docker 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は、容器を起動する際にこのスクリプトを呼び出すことを示しています。
以上が私たちが皆さんに紹介する2つのDockerイメージの作成時の差異のまとめです。皆さんに役立つことを願っています。何かご不明な点があれば、コメントを残してください。私は皆さんの質問にすぐに回答します。また、呐喊教材サイトへの皆さんのサポートに感謝しています。