Dockerfile - uniqcle/DevOps GitHub Wiki

dockerfile

FROM ubuntu:22.04
LABEL author=uniqcle
RUN apt-get update
RUN apt-get install nginx -y
RUN mkdir -p /var/www/mysite  
RUN	chmod -R 777 /var/www
WORKDIR /var/www/html/
COPY  files/  .
ENV  OWNER=uniqcle
ENV  TYPE=demo
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"] 

Команды

CMD /bin/bash              # Параметры которые используются при запуске
CMD ["/bin/bash"]          # либо так 
ENTRYPOINT /bin/bash       # аналог CMD, только не переопределяется при запуске контейнера
WORKDIR /home              # аналог cd, директория в которую хотим попасть. Напр, cd home
ENV JAVA_HOME /var/lib/jvm # Создает переменные среды окружения
USER uniqcle               # Если нужно выполнять от имени пользователя
VOLUME /opt/project        # Подмонтирует к-л директории
ADD temp.txt /home         # Добавляет temp.txt в папку /home
# ADD и COPY практически одно и тоже.
COPY temp.txt /home        #  temp.txt должен находиться в той же папке что и Dockerfile
ONBUILD ADD . /app/src     # добавляет тригеры на image

В Dockerfile избегайте команд apt-get upgrade и apt-get dist-upgrade, оптимальный синтаксис команды для установки пакетов выглядит так:

RUN apt-get update && apt-get install -y \
    bzr \
    cvs \
    git \
    mercurial \
    subversion
nginx dockerfile
FROM ubuntu:22.04
LABEL author=uniqcle
RUN apt-get update
RUN apt-get install nginx -y
EXPOSE 80
EXPOSE 443/tcp
CMD ["nginx", "-g", "daemon off;"]  
apache2 dockerfile
FROM ubuntu:22.04
LABEL author=uniqcle
RUN apt-get update
RUN apt-get install apache2 -y
EXPOSE 80
CMD ["apache2ctl", "-D", "FOREGROUND"]
docker run --rm -d --name containera -p 80:80 -v c:\docker\files\:/var/www/html imagea:v1

1 шаг. Сборка образа

docker build -t myimage:v01 .              # устанавливаем с версией

или так

docker build .                       # устанавливаем без версии
docker tag <image id> mydocker:v01   # потом устанавливаем название image

2 шаг. Проверка образа

docker images                        # просмотр всех образов
docker image inspect mydocker:v01    # просмотреть образ

3 шаг. Запуск контейнера на базе образа

docker run -d --rm --name container4 -p 80:80 myiage:v4       # запустили образ nginx
docker run --rm --name mydocker_container mydocker:v01        # запуск image -d
docker run -it --rm --name myimageit myimage:v01 /bin/bash    # запуск в it режиме
⚠️ **GitHub.com Fallback** ⚠️