Teknologian jakaminen

Dockerin yhteenveto

2024-07-12

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

Valmistele ympäristö:

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

1. Dockerin esikatselu


Dockeriin liittyvät asiakirjat:

  • dockerin virallisen verkkosivuston osoite: https://www.docker.com/
  • Dockerin dokumentaatioosoite: https://docs.docker.com/
  • Dockerin kuvavarasto: https://hub.docker.com/

Hyvää Dockeria

1. Mikä on docker: Se on avoimen lähdekoodin konttimoottori, jolla voidaan helposti hallita kontteja, ja säiliöt on eristetty toisistaan ​​hiekkalaatikkomekanismilla.

2. Minkä ongelman docker ratkaisee: ratkaise ohjelmistoympäristön migraatioongelman.

3. Ero säilöjen ja virtuaalikoneiden välillä:

  • Kontti: Se on abstraktio sovelluksesta (pakkauskoodi ja riippuvuudet yhdessä), vie vähemmän resursseja, nopea käynnistys, kevyt ja joustava.
  • Virtuaalikone: Se on abstraktio fyysisestä laitteistosta (yhdestä palvelimesta tulee useita palvelimia, ja se vie paljon resursseja ja on iso ja tehokas).

kuva-20240706011000322

4. Telakointiasema:

  • Liitäntähakemisto, esimerkki: -v /宿主机目录:容器目录
  • Tietomäärän kartoitus, esimerkki:数据卷:容器目录

5. Docker-verkko: Luo mukautettu verkko saadaksesi isäntänimen käyttöoikeuden vakaana toimialueen nimenä. (Antaa samassa verkossa olevien säiliöiden kommunikoida keskenään)

#示例
#自定义网络
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. Asenna Docker


Tämä artikkeli perustuu Ubuntu-ympäristön asennukseen. Jos sinulla ei ole käyttöoikeuksia, lisää vain sudo.

1. Sammuta palomuuri (porttia ei tarvitse paljastaa manuaalisesti myöhempää ulkoista käyttöä varten, mikä on kätevää testaamiseen)

sudo ufw disable

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

2. Asenna telakointiasema

#卸载旧版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. Yleiset Docker-komennot


kuva-20240706032721566

1. Docker-palvelun tilanhallinta:

  • systemctl status docker: Tarkastele Dockerin käynnissä olevaa tilaa
  • systemctl stop docker: sulje telakointiasema
  • systemctl start docker: käynnistä telakointiasema
  • systemcl käynnistä telakointiasema uudelleen: käynnistä telakointiasema uudelleen
  • systemctl enable docker: Aseta telakointiasema käynnistymään automaattisesti käynnistyksen yhteydessä

2. Docker-kuvanhallinta:

  • Hakukuva: Docker-hakukuvan nimi
  • Vedä kuva: docker pull Kuvan nimi: tag Jos tunnistetta ei ole määritetty, viimeisin vedetään
  • Näytä kuvat: Docker images
  • Poista kuva: docker rmi kuvan nimi: tag

3. Docker-kontin hallinta:

  • Luo säilö: docker run -di --name=säilön nimi kuvan nimi: tunniste
  • Sulje säilö: telakointiaseman pysäytyskontin nimi
  • Käynnistä säilö: telakointiaseman aloitussäiliön nimi
  • Poista säilö: docker rm -säiliön nimi
  • Katso säilö:
    • docker ps -a Näytä kaikki säilöt, mukaan lukien ne, jotka eivät ole käynnissä
    • Docker ps nähdäksesi käynnissä olevat kontit
  • Syötä säilö: docker exec -it säilön nimi/bin/bash

4. Dockerin datamäärä:

  • Tietomäärä: Se on Dockerin hallinnoima kansio.

  • Tietomäärien käyttö: Voit sitoa tietotaltion säilön polkuun toteuttaaksesi kaksisuuntaisen automaattisen tiedostojen siirron säilön ja isännän välillä.

    Aseta tiedosto isännän tietotaltioon: Docker synkronoi tiedoston automaattisesti säilöön

    Jos säilön tiedostot muuttuvat: Docker synkronoi ne automaattisesti isännän tietomäärään.

  • Tietomäärän toimintokomennot:

    Listaa datavolyymit: Docker volume ls

    Luo tietotaltio: Docker-taltio luo tietotaltion nimi

    Näytä tietomäärän tiedot (todellinen polku): Docker-taltio tarkastaa datataltion nimi

    Poista tietotaltio: Docker volume rm datataltion nimi

  • Luo säilö ja sido tietomäärä:

    docker run -di --nimi=säilön nimi -v tietotaltion nimi: polku säilön kuvan nimi: tunniste

    docker run -di --nimi=säilön nimi -v polku isännässä: polku säilön kuvan nimi: tagi

    Huomautus: Kaikkien -v-parametrin polkujen on oltava absoluuttisia polkuja.

5. Peilin varmuuskopio:

  • Vie kuva: docker save -o tiedostonimi kuvan nimi
  • Lataa kuva: docker load -i xxx.tar

4. Dockerfile


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

Dockerfile-rooli: Luo mukautettuja kuvia.

Dockerfile perustuu peruskuvaan ja kirjoittaa sarjan Docker-käskyjä. Nämä käskyt muodostavat kerros kerrallaan.

Yleiset ohjeetvaikutus
FROMMääritä kuvan perusympäristö
JUOSTASuorita mukautettu komento
CMDSäilön käynnistyskomento tai parametrit
LABELMukautetut tarrat
PALJISTAMääritä esillä oleva portti
ENVympäristömuuttujat
LISÄTÄLisää tiedostoja kuvaan
KOPIOKopioi tiedostot kuvaan
SISÄÄNTULOPISTESäilön kiinteä käynnistyskomento
VOLUMEdatamäärä
KÄYTTÄJÄMääritä käyttäjät ja käyttäjäryhmät
TYÖOHJMääritä oletustyöhakemisto
ARGMääritä rakennusparametrit

Esimerkki:

#编写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. Palvelun orkestrointi


Palvelun tai kontin orkestrointi: Hallinnoi kontteja erissä tiettyjen liiketoimintasääntöjen mukaisesti.

Docker Compose on orkestrointityökalu useiden Docker-säiliöiden määrittämiseen ja käyttämiseen.

Useita säiliöitä voidaan käynnistää yhdellä komennolla. Se ratkaisee pääasiassa konttien hallintaan ja orkestrointiin liittyvät ongelmat.

Docker Composen käytössä on kolme vaihetta:

  1. Käytä Dockerfilea ajoympäristön määrittämiseen (jos sinulla on jo peili, voit jättää tämän vaiheen pois)
  2. käyttäädocker-compose.ymlMääritä palvelut, jotka muodostavat sovelluksen
  3. juostadocker-compose up -dAloita sovellus

Asenna 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

Jos haluat poistaa docker-compose-asennuksen, voit suorittaa seuraavan komennon:

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

Docker-Composen yleiset komennot:

# !!!注意:必须先切换到`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

Esimerkki:

1. Luo docker-compose -hakemisto

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

2. Kirjoitadocker-compose.yamlasiakirja

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. Aloita

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

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