Condivisione della tecnologia

Riepilogo della finestra mobile

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Preparare l'ambiente:

  • VMware17
  • Ubuntu18.04(LTS): https://releases.ubuntu.com/18.04/ubuntu-18.04.6-desktop-amd64.iso

1. Anteprima della finestra mobile


Documenti relativi a Docker:

  • Indirizzo del sito web ufficiale di docker: https://www.docker.com/
  • Indirizzo della documentazione docker: https://docs.docker.com/
  • Magazzino di immagini docker: https://hub.docker.com/

Felice Docker

1. Che cos'è Docker: è un motore di contenitori open source in grado di gestire facilmente i contenitori e i contenitori sono isolati l'uno dall'altro utilizzando un meccanismo sandbox.

2. Quale problema risolve la finestra mobile: risolve il problema di migrazione dell'ambiente software.

3. La differenza tra contenitori e macchine virtuali:

  • Contenitore: è un'astrazione di un'applicazione (confezionamento di codice e dipendenze insieme), che occupa meno risorse, avvio rapido, leggero e flessibile.
  • Macchina virtuale: è un'astrazione dell'hardware fisico (trasforma un server in più server). Richiede molte risorse ed è ingombrante e potente.

immagine-20240706011000322

4. Archiviazione della finestra mobile:

  • Directory di montaggio, esempio: -v /宿主机目录:容器目录
  • Mappatura del volume di dati, esempio:数据卷:容器目录

5. Rete Docker: crea una rete personalizzata per ottenere l'accesso al nome host come nome di dominio stabile. (Consente ai contenitori sulla stessa rete di comunicare tra loro)

#示例
#自定义网络
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2. Installa Docker


Questo articolo è basato sull'installazione dell'ambiente Ubuntu. Se non hai le autorizzazioni, aggiungi semplicemente sudo davanti.

1. Disattivare il firewall (non è necessario esporre manualmente la porta per il successivo accesso esterno, il che è comodo per i test)

sudo ufw disable

#关闭防火墙:sudo ufw disable
#查看防火墙状态:sudo ufw status
#开启防火墙:sudo ufw enable
  • 1
  • 2
  • 3
  • 4
  • 5

2. Installa la finestra mobile

#卸载旧版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
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

3. Comandi Docker comuni


immagine-20240706032721566

1. Gestione dello stato del servizio docker:

  • systemctl status docker: visualizza lo stato di esecuzione della finestra mobile
  • systemctl ferma la finestra mobile: chiude la finestra mobile
  • systemctl start docker: avvia la finestra mobile
  • systemcl riavvia la finestra mobile: riavvia la finestra mobile
  • systemctl abilita la finestra mobile: imposta la finestra mobile per l'avvio automatico all'avvio

2. Gestione delle immagini Docker:

  • Cerca immagine: nome dell'immagine di ricerca della finestra mobile
  • Estrai l'immagine: docker pull Nome immagine: tag Se il tag non è specificato, verrà estratto l'ultimo
  • Visualizza immagini: immagini della finestra mobile
  • Elimina immagine: nome immagine docker rmi: tag

3. Gestione dei contenitori Docker:

  • Crea un contenitore: docker run -di --name=nome contenitore nome immagine: tag
  • Chiudi il contenitore: nome del contenitore di arresto della finestra mobile
  • Avvia il contenitore: nome del contenitore iniziale della finestra mobile
  • Elimina contenitore: nome contenitore docker rm
  • Visualizza il contenitore:
    • docker ps -a Visualizza tutti i contenitori, compresi quelli non in esecuzione
    • docker ps per visualizzare i contenitori in esecuzione
  • Inserisci il contenitore: docker exec -it nome contenitore/bin/bash

4. Volume dei dati Docker:

  • Volume dati: è una cartella gestita dalla finestra mobile.

  • L'uso dei volumi di dati: è possibile associare un volume di dati a un percorso in un contenitore per realizzare il trasferimento automatico bidirezionale dei file tra il contenitore e l'host.

    Inserisci il file nel volume dati dell'host: la finestra mobile sincronizzerà automaticamente il file nel contenitore

    Se i file nel contenitore cambiano: la finestra mobile li sincronizzerà automaticamente con il volume di dati dell'host.

  • Comandi operativi sul volume di dati:

    Elenca i volumi di dati: docker volume ls

    Crea un volume dati: il volume docker crea il nome del volume dati

    Visualizza i dettagli del volume dati (percorso effettivo): il volume docker controlla il nome del volume dati

    Elimina volume dati: docker volume rm nome volume dati

  • Crea il contenitore e associa il volume di dati:

    docker run -di --name=nome contenitore -v nome volume dati: percorso nel nome immagine del contenitore: tag

    docker run -di --name=nome contenitore -v percorso nell'host: percorso nel nome immagine del contenitore: tag

    Nota: tutti i percorsi nel parametro -v devono essere percorsi assoluti.

5. Backup del mirroring:

  • Esporta immagine: docker save -o nome file nome immagine
  • Carica l'immagine: docker load -i xxx.tar

4. File Docker


Documentazione: https://docs.docker.com/reference/dockerfile/

Ruolo Dockerfile: crea immagini personalizzate.

Dockerfile si basa su un'immagine di base e scrive una serie di istruzioni docker. Ciascuna istruzione costruisce un livello di immagine. Attraverso queste istruzioni, livello per livello, viene infine creata un'immagine di destinazione.

Istruzioni comunieffetto
DASpecificare l'ambiente di base dell'immagine
CORREREEsegui comando personalizzato
ComandoComando o parametri di avvio del contenitore
ETICHETTAEtichette personalizzate
ESPORRESpecificare la porta esposta
ENVvariabili ambientali
AGGIUNGEREAggiungi file all'immagine
COPIACopia i file nell'immagine
PUNTO D'ENTRATAComando di avvio corretto del contenitore
VOLUMEvolume dei dati
UTENTESpecificare utenti e gruppi di utenti
CARTELLA DI LAVOROSpecificare la directory di lavoro predefinita
ArgomentoSpecificare i parametri di creazione

Esempio:

#编写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 .
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

5. Orchestrazione dei servizi


Orchestrazione dei servizi o orchestrazione dei contenitori: gestisci i contenitori in batch in base a determinate regole aziendali.

Docker Compose è uno strumento di orchestrazione per definire ed eseguire più contenitori Docker.

È possibile avviare più contenitori con un comando. Risolve principalmente il problema di come gestire e orchestrare i contenitori.

L'utilizzo di Docker Compose prevede tre passaggi:

  1. Usa Dockerfile per definire l'ambiente in esecuzione (se hai già un mirror, puoi omettere questo passaggio)
  2. utilizzodocker-compose.ymlDefinire i servizi che compongono l'applicazione
  3. correredocker-compose up -dAvvia l'applicazione

Installa 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Se desideri disinstallare docker-compose, puoi eseguire il seguente comando:

# docker compose是二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
  • 1
  • 2

Comandi comuni per 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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Esempio:

1. Crea la directory docker-compose

mkdir ~/docker-compose
cd ~/docker-compose
  • 1
  • 2

2. Scrividocker-compose.yamldocumento

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

3. Inizia

# !!!注意:必须先切换到有`docker-compose.yaml`文件所在的目录后,才可以执行以下命令!!!
cd ~/docker-compose

# docker-compose up -d 以守护进程方式创建并启动容器
docker-compose up -d
  • 1
  • 2
  • 3
  • 4
  • 5