Introduktion till Docker
Tim Sangster
Software Engineer @ DataCamp
FROM, RUN och COPY interagerar via filsystemet.
COPY /projects/pipeline_v3/start.sh /app/start.sh
RUN /app/start.sh
Vissa instruktioner påverkar andra direkt:
WORKDIR: Ändrar arbetskatalogen för alla följande instruktionerUSER: Ändrar användaren för alla följande instruktionerMed alla sökvägar från filsystemets rot:
COPY /projects/pipeline_v3/ /app/
Blir otympligt med långa sökvägar:
COPY /projects/pipeline_v3/ /home/my_user_with_a_long_name/work/projects/app/
Använd istället WORKDIR:
WORKDIR /home/my_user_with_a_long_name/work/projects/
COPY /projects/pipeline_v3/ app/
Istället för att ange hela sökvägen för varje kommando:
RUN /home/repl/projects/pipeline/init.sh
RUN /home/repl/projects/pipeline/start.sh
Ange WORKDIR:
WORKDIR /home/repl/projects/pipeline/
RUN ./init.sh
RUN ./start.sh
Istället för att ange hela sökvägen:
CMD /home/repl/projects/pipeline/start.sh
Ange WORKDIR:
WORKDIR /home/repl/projects/pipeline/
CMD start.sh
Åsidosatt kommando körs också i WORKDIR:
docker run -it pipeline_image start.sh
$$
Bästa praxis
Ubuntu -> root som standard
FROM ubuntu --> Root user by default
RUN apt-get update --> Run as root
USER-instruktionen i Dockerfile:
FROM ubuntu --> Root user by default
USER repl --> Changes the user to repl
RUN apt-get update --> Run as repl
Dockerfile som anger repl som användare:
FROM ubuntu --> Root user by default
USER repl --> Changes the user to repl
RUN apt-get update --> Run as repl
Startar även containrar med användaren repl:
docker run -it ubuntu bash
repl@container: whoami
repl
| Användning | Dockerfile-instruktion |
|---|---|
| Ändra aktuell arbetskatalog | WORKDIR <path> |
| Ändra aktuell användare | USER <user-name> |
Introduktion till Docker