моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Подготовьте среду:
- VMware17
- Ubuntu18.04(LTS): https://releases.ubuntu.com/18.04/ubuntu-18.04.6-desktop-amd64.iso
Документы, связанные с Docker:
- Адрес официального сайта докера: https://www.docker.com/
- Адрес документации докера: https://docs.docker.com/
- Склад образов докеров: https://hub.docker.com/
1. Что такое докер: это механизм контейнеров с открытым исходным кодом, который позволяет легко управлять контейнерами, причем контейнеры изолируются друг от друга с помощью механизма песочницы.
2. Какую проблему решает докер: решить проблему миграции программной среды.
3. Разница между контейнерами и виртуальными машинами:
4. хранилище докеров:
-v /宿主机目录:容器目录
数据卷:容器目录
5. Сеть Docker: создайте собственную сеть для доступа к имени хоста как к стабильному доменному имени. (Позволяет контейнерам в одной сети взаимодействовать друг с другом)
#示例
#自定义网络
docker network create mynet
#主节点
docker run -d -p 6379:6379
-v /app/rd1:/bitnami/redis/data
-e REDIS_REPLICATION_MODE=master
-e REDIS_PASSWORD=123456
--network mynet --name redis01
bitnami/redis
#从节点
docker run -d -p 6380:6379
-v /app/rd2:/bitnami/redis/data
-e REDIS_REPLICATION_MODE=slave
-e REDIS_MASTER_HOST=redis01
-e REDIS_MASTER_PORT_NUMBER=6379
-e REDIS_MASTER_PASSWORD=123456
-e REDIS_PASSWORD=123456
--network mynet --name redis02
bitnami/redis
Эта статья основана на установке в среде Ubuntu. Если у вас нет разрешений, просто добавьте sudo впереди.
1. Отключаем фаервол (нет необходимости вручную выставлять порт для последующего внешнего доступа, что удобно для тестирования)
sudo ufw disable
#关闭防火墙:sudo ufw disable
#查看防火墙状态:sudo ufw status
#开启防火墙:sudo ufw enable
2. Установите докер
#卸载旧版docker
sudo apt-get remove docker docker-engine docker.io containerd runc
#更新软件包
sudo apt-get update
#安装一些工具
sudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg-agent
software-properties-common
#安装docker
sudo apt install docker.io
#验证dokcer是否安装成功
docker --version
#启动& 开机启动docker; enable + start 二合一
sudo systemctl enable docker --now
#配置阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
#重新加载配置
sudo systemctl daemon-reload
#重启docker服务
sudo systemctl restart docker
1. Управление статусом докер-сервиса:
2. Управление образами Docker:
3. Управление Docker-контейнером:
4. Объем данных Docker:
Объем данных: это папка, управляемая Docker.
Использование томов данных. Вы можете привязать том данных к пути в контейнере, чтобы реализовать двустороннюю автоматическую передачу файлов между контейнером и хостом.
Поместите файл в том данных хоста: докер автоматически синхронизирует файл с контейнером.
Если файлы в контейнере изменятся: docker автоматически синхронизирует их с объемом данных хоста.
Команды работы с томом данных:
Получение списка томов данных: Docker Volume ls
Создайте том данных: том Docker создайте имя тома данных.
Просмотр сведений о томе данных (фактический путь): том Docker, проверка имени тома данных.
Удалить том данных: том Docker, имя тома данных rm
Создайте контейнер и привяжите том данных:
docker run -di --name=имя контейнера -v имя тома данных: путь в образе контейнера имя: тег
docker run -di --name=имя контейнера -v путь на хосте: путь в образе контейнера имя: тег
Примечание. Все пути в параметре -v должны быть абсолютными.
5. Зеркальное резервное копирование:
Документация: https://docs.docker.com/reference/dockerfile/.
Роль Dockerfile: создание пользовательских образов.
Dockerfile основан на базовом образе и записывает серию инструкций docker. Каждая инструкция создает слой образа. С помощью этих инструкций слой за слоем наконец создается целевой образ.
Общие инструкции | эффект |
---|---|
ОТ | Укажите базовую среду образа |
БЕГАТЬ | Запустить пользовательскую команду |
КМД | Команда или параметры запуска контейнера |
ЭТИКЕТКА | Пользовательские этикетки |
РАЗОБЛАЧАТЬ | Укажите открытый порт |
ОКРУЖАЮЩАЯ СРЕДА | переменные среды |
ДОБАВЛЯТЬ | Добавляем файлы в изображение |
КОПИЯ | Скопировать файлы в изображение |
ВХОДНАЯ ТОЧКА | Исправлена команда запуска контейнера |
ОБЪЕМ | объем данных |
ПОЛЬЗОВАТЕЛЬ | Укажите пользователей и группы пользователей |
WORKDIR | Укажите рабочий каталог по умолчанию |
АРГ | Укажите параметры сборки |
Пример:
#编写dockerfile文件
vim Dockerfile
FROM openjdk:17
LABEL author=aopmin
COPY app.jar /app.jar #把jar包复制到容器的根目录下
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"] #运行命令
# 构建镜像
docker bulid -f Dockerfile -t 镜像名:tag .
Оркестрация служб или оркестрация контейнеров. Управляйте контейнерами в пакетном режиме в соответствии с определенными бизнес-правилами.
Docker Compose — это инструмент оркестрации для определения и запуска нескольких контейнеров Docker.
Несколько контейнеров можно запустить одной командой. В основном он решает проблему управления контейнерами и их оркестрации.
Использование Docker Compose состоит из трех шагов:
docker-compose.yml
Определите сервисы, составляющие приложениеdocker-compose up -d
Запустить приложениеУстановите docker-compose:
# 下载docker compose
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置权限
chmod +x /usr/local/bin/docker-compose
# 查看版本
docker-compose -version
Если вы хотите удалить docker-compose, вы можете выполнить следующую команду:
# docker compose是二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
Общие команды для docker-compose:
# !!!注意:必须先切换到`docker-compose.yaml`文件所在的目录后,才可以执行以下命令!!!
#创建容器并后台启动
docker-compose up -d
#直接启动容器
docker-compose start
#其它命令:
docker-compose help # 查看帮助
docker-compose stop # 停止容器
docker-compose start # 启动容器
docker-compose restart # 重启容器
docker-compose rm # 删除已停止的容器
docker-compose down # 停止并删除容器
Пример:
1. Создайте каталог docker-compose.
mkdir ~/docker-compose
cd ~/docker-compose
2. Напишитеdocker-compose.yaml
документ
version: "3.0"
services:
redis:
container_name: redis
image: redis:5.0
ports:
- 6379:6379
nginx:
container_name: nginx
image: nginx:1.14.2
ports:
- 80:80
volumes:
- /root/volumes/nginx/html:/usr/share/nginx/html
tomcat:
container_name: tomcat
image: tomcat:8.5.88
ports:
- 8080:8080
volumes:
- /root/volumes/tomcat/webapps:/usr/local/tomcat/webapps
3. Старт
# !!!注意:必须先切换到有`docker-compose.yaml`文件所在的目录后,才可以执行以下命令!!!
cd ~/docker-compose
# docker-compose up -d 以守护进程方式创建并启动容器
docker-compose up -d