Dockerfile
Zur Navigation springen
Zur Suche springen
Inhaltsverzeichnis
Dockerfile
Best practices for writing Dockerfiles Dockerfile reference
Erstellen eines Docker Image
Dockerfile >> *Build* >> Docker Image >> *Run* >>> Docker Container
BUILD BASIC IMAGE
$ docker build . $ docker build -t [NAME] . $ docker build -t php:latest . $ docker run -d --name container_name image_name
FROM
Select Base-Image FROM alpine:latest
LABEL
Text Information, Description, etc.. LABEL name="Basic Image" LABEL version="1.0" LABEL description="A new basic image" LABEL maintainer="robopagex.com" LABEL contact="mymail@robopagex.com"
ADD & COPY
ADD URL ADD FOLDER ADD TAR COPY FILE FOR BOTH: --chown=user:group
CMD & ENTRYPOINT
CMD & ENTRYPOINT | RUN ON CONTAINER START Run only once or overwrite with docker run [command] CMD = OVERWRITE PARAMETERS ENTRYPOINT = ADD OPTIONS CMD ["/bin/bash"] CMD ["echo","Hello"] CMD ["com","arg","arg"]
Overwrite CMD IP with robopagex.com ENTRYPOINT ["/bin/ping"] CMD ["127.0.0.1"] docker run -it myalpine robopagex.com
CMD ["/bin/ping","127.0.0.1"] docker run -it myalpine robopagex.com
CMD ["/bin/ping","127.0.0.1"] docker run -it myalpine bash
RUN
RUN ON BUILD | multiple run possible RUN echo "HELLO" RUN apt-get update && \ apt-get upgrade -y
DELETE CACHE AFTER INSTALL RUN apt-get install -y --no-install-recommends
INSTALL MYSQLI RUN docker-php-ext-install mysqli
INSIDE DOCKER CONTAINER|BASH $ docker-php-ext-enable mysqli $ apachectl restart
VOLUME
VOLUME ["/var/lib/mysql", "/var/log/mysql"] docker run .. -v /myvolumes/mysql:/var/lib/mysql -v /myvolumes/log:/var/log/mysql [IMAGE] Without -v | docker create random UID like /var/lib/docker/volumes/uid
For Fedora,CentOS, RHEL users: -v /myvolumes/mysql/:/var/lib/mysql:z
EXAMPLE
FROM alpine:latest RUN mkdir -p /app COPY . /app
JUMP INTO WORKDIR
WORKDIR /app docker run -it myalpine
FROM alpine:latest ENV name TEST RUN echo "Hello, $name"
ENV nginx_conf /app/myconf.conf