Berbagi teknologi

Ringkasan buruh pelabuhan

2024-07-12

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

Mempersiapkan lingkungan:

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

1. Pratinjau buruh pelabuhan


Dokumen terkait Docker:

  • alamat situs web resmi buruh pelabuhan: https://www.docker.com/
  • alamat dokumentasi buruh pelabuhan: https://docs.docker.com/
  • gudang gambar buruh pelabuhan: https://hub.docker.com/

Docker yang Bahagia

1. Apa itu buruh pelabuhan: Ini adalah mesin container open source yang dapat dengan mudah mengelola container, dan container tersebut diisolasi satu sama lain menggunakan mekanisme sandbox.

2. Masalah apa yang dipecahkan oleh buruh pelabuhan: menyelesaikan masalah migrasi lingkungan perangkat lunak.

3. Perbedaan antara container dan mesin virtual:

  • Kontainer: Ini adalah abstraksi aplikasi (mengemas kode dan dependensi bersama-sama), menggunakan lebih sedikit sumber daya, startup cepat, ringan dan fleksibel.
  • Mesin virtual: Ini adalah abstraksi perangkat keras fisik (mengubah satu server menjadi beberapa server). Dibutuhkan banyak sumber daya dan berukuran besar serta kuat.

gambar-20240706011000322

4. penyimpanan buruh pelabuhan:

  • Mount direktori, contoh: -v /宿主机目录:容器目录
  • Pemetaan volume data, contoh:数据卷:容器目录

5. Jaringan Docker: Buat jaringan khusus untuk mencapai akses nama host sebagai nama domain yang stabil. (Memungkinkan kontainer di jaringan yang sama untuk berkomunikasi satu sama lain)

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


Artikel ini didasarkan pada instalasi lingkungan Ubuntu. Jika Anda tidak memiliki izin, tambahkan saja sudo di depan.

1. Matikan firewall (tidak perlu mengekspos port secara manual untuk akses eksternal selanjutnya, sehingga nyaman untuk pengujian)

sudo ufw disable

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

2. Instal buruh pelabuhan

#卸载旧版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. Perintah umum Docker


gambar-20240706032721566

1. Manajemen status layanan buruh pelabuhan:

  • systemctl status docker: Melihat status buruh pelabuhan yang sedang berjalan
  • systemctl stop docker: tutup buruh pelabuhan
  • systemctl mulai buruh pelabuhan: mulai buruh pelabuhan
  • systemcl restart buruh pelabuhan: restart buruh pelabuhan
  • systemctl aktifkan buruh pelabuhan: Mengatur buruh pelabuhan untuk memulai secara otomatis saat boot

2. Manajemen gambar Docker:

  • Gambar pencarian: nama gambar pencarian buruh pelabuhan
  • Tarik gambar: docker pull Nama gambar: tag Jika tag tidak ditentukan, yang terakhir akan ditarik
  • Lihat gambar: gambar buruh pelabuhan
  • Hapus gambar: docker rmi nama gambar: tag

3. Manajemen kontainer Docker:

  • Buat wadah: docker run -di --name=nama wadah nama gambar: tag
  • Tutup wadah: nama wadah docker stop
  • Mulai wadah: docker mulai nama wadah
  • Hapus wadah: nama wadah docker rm
  • Lihat wadahnya:
    • docker ps -a Lihat semua container, termasuk yang tidak berjalan
    • docker ps untuk melihat container yang sedang berjalan
  • Masukkan wadah: docker exec -it nama wadah/bin/bash

4. Volume data buruh pelabuhan:

  • Volume data: Ini adalah folder yang dikelola oleh buruh pelabuhan.

  • Penggunaan volume data: Anda dapat mengikat volume data ke jalur dalam wadah untuk mewujudkan transfer file otomatis dua arah antara wadah dan host.

    Masukkan file ke dalam volume data host: buruh pelabuhan akan secara otomatis menyinkronkan file ke container

    Jika file dalam container berubah: buruh pelabuhan akan secara otomatis menyinkronkannya dengan volume data host.

  • Perintah operasi volume data:

    Daftar volume data: volume buruh pelabuhan ls

    Buat volume data: volume buruh pelabuhan buat nama volume data

    Lihat detail volume data (jalur sebenarnya): volume buruh pelabuhan memeriksa nama volume data

    Hapus volume data: volume buruh pelabuhan rm nama volume data

  • Buat wadah dan ikat volume data:

    docker run -di --name=nama kontainer -v nama volume data: jalur dalam nama gambar kontainer: tag

    docker run -di --name=nama kontainer -v jalur di host: jalur di nama gambar kontainer: tag

    Catatan: Semua jalur dalam parameter -v harus berupa jalur absolut.

5. Cadangan cermin:

  • Ekspor gambar: docker save -o nama file nama gambar
  • Muat gambar: docker load -i xxx.tar

4. Dockerfile


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

Peran Dockerfile: Membuat gambar khusus.

Dockerfile didasarkan pada gambar dasar dan menulis serangkaian instruksi buruh pelabuhan. Setiap instruksi membangun lapisan gambar melalui instruksi ini lapis demi lapis, gambar target akhirnya dibuat.

Instruksi umummemengaruhi
DARITentukan lingkungan dasar gambar
BERLARIJalankan perintah khusus
CMDPerintah atau parameter startup kontainer
LABELLabel khusus
MEMBUKATentukan port yang terbuka
ENVvariabel lingkungan
MENAMBAHKANTambahkan file ke gambar
MENYALINSalin file ke gambar
TITIK MASUKPerintah startup tetap kontainer
VOLUMEvolume data
PENGGUNATentukan pengguna dan grup pengguna
DIR KERJATentukan direktori kerja default
Bahasa InggrisTentukan parameter build

Contoh:

#编写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. Orkestrasi Pelayanan


Orkestrasi layanan atau orkestrasi kontainer: Kelola kontainer secara batch sesuai dengan aturan bisnis tertentu.

Docker Compose adalah alat orkestrasi untuk mendefinisikan dan menjalankan beberapa container Docker.

Beberapa kontainer dapat dimulai dengan satu perintah. Hal ini terutama memecahkan masalah bagaimana mengelola dan mengatur container.

Ada tiga langkah untuk menggunakan Docker Compose:

  1. Gunakan Dockerfile untuk menentukan lingkungan yang sedang berjalan (jika Anda sudah memiliki mirror, Anda dapat menghilangkan langkah ini)
  2. menggunakandocker-compose.ymlTentukan layanan yang membentuk aplikasi
  3. berlaridocker-compose up -dMulai aplikasi

Instal komposisi buruh pelabuhan:

# 下载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

Jika Anda ingin menghapus instalasi docker-compose, Anda dapat menjalankan perintah berikut:

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

Perintah umum untuk penulisan buruh pelabuhan:

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

Contoh:

1. Buat direktori penulisan buruh pelabuhan

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

2. Menulisdocker-compose.yamldokumen

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

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

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