自分だけのドッカーイメージを作りたいです。私はDockerfileを使って作成し、httpdサーバーとmysqlクライアントを実行したかったです。下から私の編集ファイルを見ることができます。私のDockerfileは正しいですか?
# Dockerfile that modifies oraclelinux:6.6 to include an Apache HTTP server
FROM ubuntu:14.04
RUN apt-get -y install apache2
RUN echo "HTTP server running on guest" > /var/www/html/index.html
EXPOSE 80
RUN apt-get -y install mysql-client
EXPOSE 3306
答え1
いいえ、最後にCMDを実行する必要があるため、これは正しくありません。
また、少数の中間コンテナスナップショットと、より少ない出力を生成するためのいくつかのベストプラクティスも含める必要があります。
apt-get
何度も実行しないでください。apt-get update
走る前に走らなければならないapt-get install
- ランニング後はきれいに整理する必要があります
apt-get install
- 管理者を含める必要があります。
次のようにしてみてください。
# Dockerfile that modifies oraclelinux:6.6 to include an Apache HTTP server
FROM ubuntu:14.04
MAINTAINER Supun Rathnayake
RUN apt-get update && apt-get install -y \
apache2 \
mysql-client \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN echo "HTTP server running on guest" > /var/www/html/index.html
EXPOSE 80
EXPOSE 3306
CMD ["your command to run apache"]
おそらくdocker-hubのapache2プロジェクトを見てみるべきでしょう。このプロジェクトには多くのダウンロードがあり、Dockerfileが分析されていて非常に有益です。
原則として、同じコンテナでmysqlクライアントを実行できますが、これにはapacheおよびmysqlデーモンを起動するためのいくつかのスケジューラが必要になる場合があります。または、mysqlを別の場所に配置することを検討する必要があります(またはDockerhubの標準コンテナの1つを使用してコンテナに接続)。