Technology sharing

Docker summary

2024-07-12

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

Praeparate ambitum:

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

1. Docker preview


Docker documenta cognata:

  • docker rutrum electronica inscriptio: https://www.docker.com/
  • docker documentorum inscriptio: https://docs.docker.com/
  • docker imaginem warehouse: https://hub.docker.com/

Beatus Docker

1. Quid sit docker: Fons apertus est machinalis quae facile vascula administrare potest, et continentia ab invicem segregantur utens machinam sandbox.

2. Quaestionem quamdam docker solve: problema migrationis solvendae programmatis programmatis.

3. Differentia inter continentia et machinis virtualis;

  • Continens: Abstractio applicationis (codex sarcinarum et dependentiarum simul), sumens facultates minus, satus celeriter, leve pondus et flexibile.
  • Apparatus virtualis: Abstractio ferramentorum physicarum (convertens unum servo in plures servientes).

image-20240706011000322

4. Dock repono:

  • Monte presul, exemplum; -v /宿主机目录:容器目录
  • Data voluminis destinatio, exemplum:数据卷:容器目录

5. Docker retis: Crea in modum retis ad consequendam exercitum nomen accessum ut firmum nomen domain nomen. (Permittit vasa in eadem network communicare inter se)

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


Articulus hic in Ubuntu ambitus installation fundatur.

1. Firewall averte (non opus est ut manually portum patefaciat ad accessum externum subsequentem, qui ad probationem commodam est)

sudo ufw disable

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

2. Install 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. Commune Docker mandata


image-20240706032721566

1. Status administratione de docker servitium:

  • systemctl status docker: View currentem statum docker
  • systemctl stop docker: close docker
  • systemctl satus docker: satus docker
  • systemcl sileo docker: sileo docker
  • systemctl enable docker: Pone docker incipere statim ad tabernus

2. Docker imaginis procuratio:

  • Quaero imaginem: docker quaero imaginem nominis
  • Trahere imaginem: docker traho nomen imaginis: tag Si tag non specificatum est, novissimus trahetur
  • Visum imagines: docker images
  • Delere imaginem: docker rmi nomen imaginis: tag

3. Docker continens procuratio:

  • Parte vas: docker run -di --name=continens nomen imaginis nomen: tag
  • Claudere continens: docker stop continens nomen eius
  • Incipit continens: docker satus continens nomen
  • Delere continens docker rm continens nomen
  • Videre continens:
    • docker ps -a Omnia vasa, in iis quae non currit
    • docker ps ad view cursus continentia
  • Intra continens: docker exec -it continens nomen/bin/bash

4. Docker notitia voluminis:

  • Data voluminis: Folder a navale confectum est.

  • Usus notitiarum voluminum: Volumen emittere potes ad iter in vase ad cognoscendum duos modos automatice translationis documentorum inter continentem et exercitum.

    Tabellam in notitia voluminis hospitis pone: auctor statim tabellam ad continens synchronize

    Si tabulae in continente mutata sunt: ​​auctor sponte ea synchronizabit ad volumen notitia hospitii.

  • Data operandi volumen mandata;

    Index notitiarum voluminum: docker volume ls

    Partum a data volumine: docker volumen creare notitia voluminis nomen

    Visum notitia volumen singula (via ipsa): volumen inspicere data volumen nomen

    Delere data voluminis: decker volume rm data volume nomen

  • Parte continens et liga volumen notitia:

    run -di - nomen = continens nomen -v data voluminis nomen: iter in vase nomen imaginis: tag

    docker run -di --name=continens name -v semita in exercitu: semita in vase nomen imaginis: tag

    Nota: Omnes viae in -v modulo viae absolutae esse debent.

5. Speculum tergum:

  • Export imaginem: docker salvum fac -o file name image name
  • Onerantes imaginem: onus docker -i xxx.tar

4. Dockerfile


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

Dockerfile munus: crea imagines consuetudo.

Dockerfile in fundamentali imagine fundatur et seriem mandatorum navalium scribit. Quaelibet institutio iacuit imaginis.

Communes instructioneseffectus
EX*Specificare imaginem basi environment
CURREMore currunt imperium
CMDContinens startup imperium seu parametri
LABELConsuetudo pittacia
EXPOSITIOSpecificare expositae portum
ENVamet variables
ADDAdd files ad imaginem
IMITATIOEffingo lima ut imaginem
ENTRYPOINTSatus continens certum imperium
MAGNITUDOdata volumine
USUFRUCTUARIUSSpecificare users et usor coetibus
WORKDIRSpecificare default opus Directory
ARGSpecificare parametri constructum

Exemplum:

#编写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. Service orchestration


Orchestratio servitii seu orchestrationis continens: Curo continentia in batches secundum regulas quasdam negotiationes.

Docker Componere est instrumentum orchestrationis ad definiendum et currendum multa vasa Docker.

Plures continentia uno mandato inchoari possunt. Maxime quaestionem solvit quomodo vasorum orchestratorum regendi.

Tres gradus sunt utendi Docker Componere:

  1. Utere Dockerfile ad definiendum ambitum currens (si iam speculum habes, hunc gradum omittere potes)
  2. ususdocker-compose.ymlDefinias officia quae faciunt per applicationem
  3. Curredocker-compose up -dSatus application

Docker-instrue componere:

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

Si vis ut amoveas dock-componere, hoc praeceptum exequi potes;

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

Communes praecepta pro componere;

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

Exemplum:

1. crea docker-componere Directory

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

2. Writedocker-compose.yamldocumentum

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

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

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