2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Bereiten Sie die Umgebung vor:
- VMware17
- Ubuntu18.04 (LTS): https://releases.ubuntu.com/18.04/ubuntu-18.04.6-desktop-amd64.iso
Docker-bezogene Dokumente:
- Offizielle Website-Adresse von Docker: https://www.docker.com/
- Adresse der Docker-Dokumentation: https://docs.docker.com/
- Docker-Image-Warehouse: https://hub.docker.com/
1. Was ist Docker? Es handelt sich um eine Open-Source-Container-Engine, die Container einfach verwalten kann. Die Container werden mithilfe eines Sandbox-Mechanismus voneinander isoliert.
2. Welches Problem löst Docker: Löst das Migrationsproblem der Softwareumgebung.
3. Der Unterschied zwischen Containern und virtuellen Maschinen:
4. Docker-Speicher:
-v /宿主机目录:容器目录
数据卷:容器目录
5. Docker-Netzwerk: Erstellen Sie ein benutzerdefiniertes Netzwerk, um den Hostnamenzugriff als stabilen Domänennamen zu erreichen. (Ermöglicht Containern im selben Netzwerk die Kommunikation untereinander)
#示例
#自定义网络
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
Dieser Artikel basiert auf der Installation der Ubuntu-Umgebung. Wenn Ihnen die Berechtigungen fehlen, fügen Sie einfach sudo hinzu.
1. Schalten Sie die Firewall aus (es ist nicht erforderlich, den Port manuell für den späteren externen Zugriff freizugeben, was zum Testen praktisch ist).
sudo ufw disable
#关闭防火墙:sudo ufw disable
#查看防火墙状态:sudo ufw status
#开启防火墙:sudo ufw enable
2. Docker installieren
#卸载旧版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. Statusverwaltung des Docker-Dienstes:
2. Docker-Image-Verwaltung:
3. Docker-Containerverwaltung:
4. Docker-Datenvolumen:
Datenvolumen: Es handelt sich um einen von Docker verwalteten Ordner.
Verwendung von Datenvolumes: Sie können ein Datenvolume an einen Pfad in einem Container binden, um eine bidirektionale automatische Übertragung von Dateien zwischen dem Container und dem Host zu realisieren.
Legen Sie die Datei im Datenvolumen des Hosts ab: Docker synchronisiert die Datei automatisch mit dem Container
Wenn sich die Dateien im Container ändern: Docker synchronisiert sie automatisch mit dem Datenvolumen des Hosts.
Befehle für den Betrieb des Datenvolumens:
Datenvolumes auflisten: Docker-Volume ls
Erstellen Sie ein Daten-Volume: Docker-Volume Name des Daten-Volumes erstellen
Details zum Daten-Volume anzeigen (tatsächlicher Pfad): Docker-Volume-Inspect-Daten-Volume-Name
Daten-Volume löschen: Docker-Volume-RM-Daten-Volume-Name
Erstellen Sie den Container und binden Sie das Datenvolumen:
docker run -di --name=Containername -v Datenträgername: Pfad im Container-Image-Name: Tag
Docker run -di --name=Containername -v Pfad im Host: Pfad im Container-Image-Name: Tag
Hinweis: Alle Pfade im Parameter -v müssen absolute Pfade sein.
5. Spiegelsicherung:
Dokumentation: https://docs.docker.com/reference/dockerfile/
Dockerfile-Rolle: Benutzerdefinierte Images erstellen.
Dockerfile basiert auf einem Basisbild und schreibt eine Reihe von Docker-Anweisungen. Durch diese Anweisungen wird schließlich Schicht für Schicht ein Zielbild erstellt.
Allgemeine Anweisungen | Wirkung |
---|---|
AUS | Geben Sie die Image-Basisumgebung an |
LAUFEN | Führen Sie einen benutzerdefinierten Befehl aus |
CMD | Befehl oder Parameter zum Starten des Containers |
ETIKETT | Benutzerdefinierte Etiketten |
EXPONIEREN | Geben Sie den exponierten Port an |
Umwelt | Umgebungsvariablen |
HINZUFÜGEN | Fügen Sie dem Bild Dateien hinzu |
KOPIEREN | Kopieren Sie Dateien in das Bild |
EINSTIEGSPUNKT | Container-Fix-Startbefehl |
VOLUMEN | Datenvolumen |
BENUTZER | Geben Sie Benutzer und Benutzergruppen an |
ARBEITSVERZEICHNIS | Geben Sie das Standardarbeitsverzeichnis an |
ARG | Geben Sie Build-Parameter an |
Beispiel:
#编写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 .
Service-Orchestrierung oder Container-Orchestrierung: Verwalten Sie Container stapelweise nach bestimmten Geschäftsregeln.
Docker Compose ist ein Orchestrierungstool zum Definieren und Ausführen mehrerer Docker-Container.
Mit einem Befehl können mehrere Container gestartet werden. Es löst hauptsächlich das Problem der Verwaltung und Orchestrierung von Containern.
Die Verwendung von Docker Compose erfolgt in drei Schritten:
docker-compose.yml
Definieren Sie die Dienste, aus denen die Anwendung bestehtdocker-compose up -d
Anwendung startenDocker-Compose installieren:
# 下载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
Wenn Sie Docker-Compose deinstallieren möchten, können Sie den folgenden Befehl ausführen:
# docker compose是二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
Allgemeine Befehle für 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 # 停止并删除容器
Beispiel:
1. Erstellen Sie ein Docker-Compose-Verzeichnis
mkdir ~/docker-compose
cd ~/docker-compose
2. Schreiben Siedocker-compose.yaml
dokumentieren
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. Starten
# !!!注意:必须先切换到有`docker-compose.yaml`文件所在的目录后,才可以执行以下命令!!!
cd ~/docker-compose
# docker-compose up -d 以守护进程方式创建并启动容器
docker-compose up -d