Един от най-добрите начини за автоматизиране на Docker за автоматично изграждане на изображения е чрез използване на Dockerfile. Dockerfile е прост текстов документ, който съдържа всички команди, които потребителят може да извика в командния ред, за да събере изображение.
В този урок ще ви покажем стъпка по стъпка процес на създаване на Dockerfile за приложение nodeJS, създаване на Dockerignore и docker-compose.
Създаване на Dockerfile, Dockerignore и Docker Compose
1. Докер файл
Ще създадем Dockerfile в директорията на източника.
vim Dockerfile
На първо място, дефинирайте от какъв образ искаме да започнем изграждането. Тук добавих моя алпийски образ на докер за Linux, който включва nodejs10 и NPM. Следвайте нашето изображение на Docker и ръководството за концентратор на докер, за да създадете изображения на докер и да ги изтеглите към центъра на докера.
ОТ ddarshana / alpinenode10
Командата MAINTAINER показва автора на генерираните изображения.
ПОДДРЪЖКА даршана (D.Даршана @ fosslinux.com)
Командата RUN се използва за изпълнение на всякакви команди. Тук инсталираме curl пакет на Alpine Linux.
RUN apk add --update curl && rm -rf / var / cache / apk / *
Създайте нова директория с име Приложение, който ще държи кода на приложението в изображението.
РАБОТА mkdir / ап
Директивата WORKDIR се използва за определяне къде да се изпълнява командата, дефинирана с CMD.
WORKDIR / ап
Копирайте пакета.json файл.
Пакет COPY.json .
Инсталирайте приложението nodeJS и зависимости.
RUN npm инсталиране
Източник на приложението за пакет.
КОПИЕ…
Изтеглете файла на променливата на средата. В нашия случай имаме отделно място за съхраняване на глобални конфигурации.
RUN curl -O https: // demofiles.fosslinux / nodejs /.env
Стартирайте приложението и то ще стартира на порт 3000 по подразбиране.
CMD [„npm“, „start“]
Ето пълния ни Dockerfile.
ОТ ddarshana / alpinenode10 ПОДДРЪЖКА darshana (D.Даршана @ fosslinux.com) # Инсталирайте "curl" пакет RUN apk add --update curl && rm -rf / var / cache / apk / * # Създаване на директория на приложение RUN mkdir / app WORKDIR / app # копиране на пакет.json COPY пакет.json . # Инсталирайте зависимости на приложението RUN npm install # Bundle source source COPY ... # Изтеглете файла с променлива на средата от нашето мрежово местоположение RUN curl -O https: // demofiles.fosslinux / nodejs /.env # Стартирайте APP CMD ["npm", "start"]
Запазете и излезте от файла. Ето моята директория с кодове за приложения на NodeJs.
2. Създаване на файл Dockerignore
Използването на файла „dockerignore“ предотвратява копирането на нашите локални модули и други нежелани файлове върху изображението на Docker и възможността за презаписване на модули, инсталирани във вашето изображение. Горещо ви препоръчваме да го използвате заедно с Dockerfiles.
Файлът на Dockerignore трябва да бъде в същата директория като Dockerfile.
vim .dockerignore
Тук добавихме следното съдържание:
.env Dockerfile node_modules тест .vscode .eslintrc.js
Запазете и излезте от файла.
Изградете образ на Docker
изграждане на докер . -t fosslinuxdemo / nodejsapp
Процесът трябва да отнеме известно време. Моля, бъдете търпеливи.
Списък на Docker изображения
Изпълнете следната команда за изброяване на изображения:
изображения на докер
Стартирайте изображението на Docker
докер стартиране -itd -p 3000: 3000 fosslinuxdemo / nodejsapp
-itd: - изпълнява контейнера във фонов режим
-p: - флаг пренасочва публичен порт към частен порт вътре в контейнера
4. Docker Compose
Compose е инструмент за дефиниране и стартиране на многоконтейнерни приложения на Docker. С Compose ще използваме YAML файл за конфигуриране на услугите за приложения. След това с една команда ще създадем и стартираме всички услуги от нашата конфигурация.
Инсталирайте Compose
Преди да инсталирате композитора, първо трябва да инсталирате Docker.
Изпълнете тази команда, за да изтеглите текущата стабилна версия на Docker Compose:
curl -L "https: // github.com / docker / compose / releases / download / 1.25.0 / docker-compose - $ (uname -s) - $ (uname -m) "-o / usr / local / bin / docker-compose
Прилагане на изпълними разрешения към двоичния файл:
chmod + x / usr / local / bin / docker-compose
Тествайте инсталацията:
docker-compose --version
5. Инсталиране на WordPress и MySQL с помощта на Docker Compose
Създайте папка за вашия проект:
mkdir / opt / fosslinuxdemo
Отидете в създадената директория:
cd / opt / fosslinuxdemo
Тук ще създадем директории с данни за нашия MySQL контейнер и WordPress контейнер.
mkdir данни mkdir html
Ще монтираме горните директории към нашите контейнери.
Създайте композиторски файл:
vim docker-compose.yml
Тук е нашият файл за съставяне на докер. Копирайте следното съдържание във вашия файл.
версия: „3.7 'услуги: db: имя_контейнер: рестартиране на fosslinux-mysql: винаги изображение: mysql: 5.7 тома: - / opt / fosslinuxdemo / data: / var / lib / mysql команда: --default-authentication-plugin = mysql_native_password среда: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: "wordpress 330: ports 330" word ports: 330 мрежи: - fosslinux_net wp: контейнер_име: fosslinux-wp рестартиране: винаги обеми: - "/ opt / fosslinuxdemo / html: / var / www / html" depend_on: - db image: wordpress ports: - "80:80" среда: WORDPRESS_DB_HOST : db: 3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress мрежи: - fosslinux_net мрежи: fosslinux_net:
Обърнете внимание на номера на версията. Повече подробности за версията на версия на версията @ composer.
версия: „3.7 '
услуги: db:
Услугата в Compose е работещ контейнер и дефинициите на услугата указват информация за това как ще се изпълнява всеки контейнер. Нашата дефиниция на услугата „db“ има различни опции.
Име на контейнер: fosslinux-mysql
- Посочва име за контейнера
рестартиране: винаги
- Определя политиката за рестартиране на контейнера
изображение: mysql: 5.7
- MySQL 5.7 официално изображение на докер
- Изображение на WordPress Официален докер
томове: https: // hub.докер.com / _ / mysql - / opt / fosslinuxdemo / data: / var / lib / mysql
Тук монтираме том „/ opt / fosslinuxdemo / data“ към директорията „/ var / lib / mysql“ на контейнера. Като цяло това е стандартната директория с данни за MySQL за повечето дистрибуции.
команда: --default-authentication-plugin = mysql_native_password
Тази опция указва команда за замяна на CMD инструкцията по подразбиране за изображението.
околен свят:
Определете променливите на средата. Тук задаваме MySQL променливи.
портове: - "3306: 3306"
- Картографиране на портове.
мрежи: - fosslinux_net
- Определя мрежа за контейнера
зависи_на: - db
Това представлява, че нашите контейнери ще стартират в зависимост от зависимостта, като контейнерът “wp” започва след контейнера “db”.
Сега можем да създадем нашата среда.
docker-compose up -d
-d флаг, който ще изпълнява контейнери във фонов режим.
Избройте докер контейнери:
докер ps -a
Проверете регистрационните файлове на WordPress Container:
докер дневници -f fosslinux-wp
Сега отидете в уеб браузъра и въведете вашия IP, за да получите прозореца за инсталиране на WordPress.
Продължете да кликнете върху, продължете и завършете процеса на инсталиране на WordPress.
Това е всичко за работата с Dockerfiles и Docker Compose. Надявам се статията да ви е харесала.