Κοινή χρήση τεχνολογίας

Σύνοψη Docker

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

1. Προεπισκόπηση Docker


Έγγραφα σχετικά με το Docker:

  • Διεύθυνση επίσημης ιστοσελίδας docker: https://www.docker.com/
  • Διεύθυνση τεκμηρίωσης docker: https://docs.docker.com/
  • αποθήκη εικόνων docker: https://hub.docker.com/

Happy Docker

1. Τι είναι το docker: Είναι μια μηχανή κοντέινερ ανοιχτού κώδικα που μπορεί εύκολα να διαχειριστεί κοντέινερ και τα κοντέινερ είναι απομονωμένα μεταξύ τους χρησιμοποιώντας μηχανισμό sandbox.

2. Τι πρόβλημα επιλύει το docker: επίλυση του προβλήματος μετεγκατάστασης του περιβάλλοντος λογισμικού.

3. Η διαφορά μεταξύ κοντέινερ και εικονικών μηχανών:

  • Container: Είναι μια αφαίρεση μιας εφαρμογής (κωδικός συσκευασίας και εξαρτήσεις μαζί), που καταλαμβάνει λιγότερους πόρους, γρήγορη εκκίνηση, ελαφριά και ευέλικτη.
  • Εικονική μηχανή: Είναι μια αφαίρεση φυσικού υλικού (μετατροπή ενός διακομιστή σε πολλαπλούς διακομιστές, καταλαμβάνει πολλούς πόρους και είναι ογκώδης και ισχυρός).

εικόνα-20240706011000322

4. Αποθήκευση docker:

  • Προσάρτηση καταλόγου, παράδειγμα: -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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2. Εγκαταστήστε το Docker


Αυτό το άρθρο βασίζεται στην εγκατάσταση του περιβάλλοντος Ubuntu Εάν δεν έχετε δικαιώματα, απλώς προσθέστε το sudo μπροστά.

1. Απενεργοποιήστε το τείχος προστασίας (δεν χρειάζεται να εκθέσετε χειροκίνητα τη θύρα για επακόλουθη εξωτερική πρόσβαση, κάτι που είναι βολικό για δοκιμή)

sudo ufw disable

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

2. Εγκαταστήστε το docker

#卸载旧版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. Κοινές εντολές Docker


εικόνα-20240706032721566

1. Διαχείριση κατάστασης της υπηρεσίας docker:

  • systemctl status docker: Δείτε την κατάσταση λειτουργίας του docker
  • systemctl stop docker: κλείσιμο αποβάθρας
  • systemctl start docker: start docker
  • systemcl restart docker: επανεκκίνηση docker
  • systemctl enable docker: Ρυθμίστε το docker να ξεκινά αυτόματα κατά την εκκίνηση

2. Διαχείριση εικόνας Docker:

  • Αναζήτηση εικόνας: όνομα εικόνας αναζήτησης docker
  • Τραβήξτε την εικόνα: Docker pull Όνομα εικόνας: ετικέτα Εάν δεν έχει καθοριστεί η ετικέτα, θα τραβηχτεί η τελευταία
  • Προβολή εικόνων: εικόνες αποβάθρας
  • Διαγραφή εικόνας: όνομα εικόνας docker rmi: ετικέτα

3. Διαχείριση κοντέινερ Docker:

  • Δημιουργήστε ένα κοντέινερ: docker run -di --name=όνομα κοντέινερ όνομα εικόνας: ετικέτα
  • Κλείστε το κοντέινερ: όνομα κοντέινερ stop docker
  • Εκκίνηση του κοντέινερ: όνομα κοντέινερ έναρξης docker
  • Διαγραφή κοντέινερ: όνομα κοντέινερ docker rm
  • Δείτε το κοντέινερ:
    • docker ps -a Προβολή όλων των κοντέινερ, συμπεριλαμβανομένων αυτών που δεν εκτελούνται
    • docker ps για προβολή κοντέινερ που τρέχουν
  • Εισαγάγετε το κοντέινερ: docker exec -it όνομα κοντέινερ/bin/bash

4. Όγκος δεδομένων Docker:

  • Όγκος δεδομένων: Είναι ένας φάκελος που διαχειρίζεται το docker.

  • Η χρήση τόμων δεδομένων: Μπορείτε να συνδέσετε έναν τόμο δεδομένων σε μια διαδρομή σε ένα κοντέινερ για να πραγματοποιήσετε αμφίδρομη αυτόματη μεταφορά αρχείων μεταξύ του κοντέινερ και του κεντρικού υπολογιστή.

    Τοποθετήστε το αρχείο στον τόμο δεδομένων του κεντρικού υπολογιστή: το docker θα συγχρονίσει αυτόματα το αρχείο με το κοντέινερ

    Εάν τα αρχεία στο κοντέινερ αλλάξουν: το docker θα τα συγχρονίσει αυτόματα με τον τόμο δεδομένων του κεντρικού υπολογιστή.

  • Εντολές λειτουργίας όγκου δεδομένων:

    Τόμοι δεδομένων λίστας: τόμος αποβάθρα ls

    Δημιουργία τόμου δεδομένων: τόμος docker δημιουργία ονόματος όγκου δεδομένων

    Προβολή λεπτομερειών όγκου δεδομένων (πραγματική διαδρομή): Όνομα όγκου δεδομένων επιθεώρησης όγκου βάσης

    Διαγραφή όγκου δεδομένων: Όνομα όγκου δεδομένων βάσης βάσης rm

  • Δημιουργήστε το κοντέινερ και δεσμεύστε τον όγκο δεδομένων:

    docker run -di --name=container name -v όνομα όγκου δεδομένων: διαδρομή στο όνομα εικόνας κοντέινερ: ετικέτα

    docker run -di --name=container name -v διαδρομή στον κεντρικό υπολογιστή: διαδρομή στο κοντέινερ όνομα εικόνας: ετικέτα

    Σημείωση: Όλες οι διαδρομές στην παράμετρο -v πρέπει να είναι απόλυτες διαδρομές.

5. Αντίγραφο ασφαλείας καθρέφτη:

  • Εξαγωγή εικόνας: docker save -o όνομα αρχείου όνομα εικόνας
  • Φόρτωση της εικόνας: Docker load -i xxx.tar

4. Dockerfile


Τεκμηρίωση: https://docs.docker.com/reference/dockerfile/

Ρόλος αρχείου Docker: Δημιουργήστε προσαρμοσμένες εικόνες.

Το Dockerfile βασίζεται σε μια βασική εικόνα και γράφει μια σειρά από οδηγίες docker.

Κοινές οδηγίεςαποτέλεσμα
ΑΠΟΚαθορίστε το περιβάλλον βάσης της εικόνας
ΤΡΕΞΙΜΟΕκτέλεση προσαρμοσμένης εντολής
CMDΕντολή ή παράμετροι εκκίνησης κοντέινερ
ΕΠΙΓΡΑΦΗΠροσαρμοσμένες ετικέτες
ΕΚΘΕΣΕΙΚαθορίστε την εκτεθειμένη θύρα
ENVμεταβλητές περιβάλλοντος
ΠΡΟΣΘΗΚΗΠροσθέστε αρχεία στην εικόνα
ΑΝΤΙΓΡΑΦΟΑντιγραφή αρχείων στην εικόνα
ΣΗΜΕΙΟ ΕΙΣΟΔΟΥΕντολή εκκίνησης σταθερής κοντέινερ
ΕΝΤΑΣΗ ΗΧΟΥόγκος δεδομένων
ΧΡΗΣΤΗΣΚαθορίστε χρήστες και ομάδες χρηστών
ΔΙΕΥΘΥΝΤΗΣ ΕΡΓΑΣΙΑΣΚαθορίστε τον προεπιλεγμένο κατάλογο εργασίας
ARGΚαθορίστε τις παραμέτρους κατασκευής

Παράδειγμα:

#编写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. Ενορχήστρωση Υπηρεσίας


Ενορχήστρωση υπηρεσιών ή ενορχήστρωση κοντέινερ: Διαχειριστείτε τα κοντέινερ σε παρτίδες σύμφωνα με ορισμένους επιχειρηματικούς κανόνες.

Το Docker Compose είναι ένα εργαλείο ενορχήστρωσης για τον καθορισμό και τη λειτουργία πολλαπλών κοντέινερ Docker.

Πολλά κοντέινερ μπορούν να ξεκινήσουν με μία εντολή. Λύνει κυρίως το πρόβλημα του τρόπου διαχείρισης και ενορχήστρωσης κοντέινερ.

Υπάρχουν τρία βήματα για τη χρήση του Docker Compose:

  1. Χρησιμοποιήστε το Dockerfile για να ορίσετε το περιβάλλον λειτουργίας (εάν έχετε ήδη καθρέφτη, μπορείτε να παραλείψετε αυτό το βήμα)
  2. χρήσηdocker-compose.ymlΚαθορίστε τις υπηρεσίες που απαρτίζουν την εφαρμογή
  3. τρέξιμο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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Εάν θέλετε να απεγκαταστήσετε το docker-compose, μπορείτε να εκτελέσετε την ακόλουθη εντολή:

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

Συνήθεις εντολές για 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

Παράδειγμα:

1. Δημιουργήστε κατάλογο docker-compose

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

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

3. Έναρξη

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

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