나만의 도커 이미지를 만들고 싶습니다. 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의 표준 컨테이너 중 하나를 사용하여 컨테이너에 연결).