Notas de estudio del comando Docker


prefacio

Después de aprender a desarrollar proyectos, descubrí que solo saber desarrollar proyectos no es un programador Java calificado, y también es necesario aprender a implementar proyectos en el servidor. El proyecto se implementó en el servidor a través de Linux antes, pero el proceso de implementación de Linux era demasiado engorroso en comparación con Docker, así que decidí aprender Docker, un método más simple, y registrar el proceso de aprendizaje de Docker aquí.
Materiales de aprendizaje : Crazy God habla sobre Java_Docker
Software utilizado : MobaXterm
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí


Consejo: El siguiente es el texto de este artículo, los siguientes casos son como referencia.

1. ¿Qué es Docker?

Docker es un motor contenedor de aplicaciones de código abierto que permite a los desarrolladores empaquetar sus aplicaciones y dependencias en una imagen portátil y luego publicarla en cualquier máquina con sistema operativo Linux o Windows popular, que también se puede virtualizar. Utiliza completamente el mecanismo sandbox y no tiene interfaz entre ellos.
Fuente: Enciclopedia Docker_Baidu: https://baike.baidu.com/item/Docker/13344470?fr=aladdin


Dos, comandos comunes de Docker

1. Comando de ayuda

docker version       # 显示docker的版本信息
docker info          # 显示docker的系统信息,包括镜像和容器数量
docker 命令 --help   # 帮助命令

La dirección de la documentación de ayuda de Docker: https://docs.docker.com/engine/reference/commandline/docker/

2. Comando espejo


Imágenes de docker

docker images # 查看本机上的所有镜像

Insertar descripción de la imagen aquí

[root@VM-16-16-centos /]# docker images
REPOSITORY                  TAG          IMAGE ID       CREATED         SIZE
redis                       latest       5d89766432d0   6 weeks ago     105MB
nginx                       latest       f8f4ffc8092c   6 weeks ago     133MB
mysql                       latest       2fe463762680   6 weeks ago     514MB
rabbitmq                    management   2121b269a508   6 weeks ago     253MB
hello-world                 latest       feb5d9fea6a5   6 weeks ago     13.3kB
elasticsearch               7.9.2        caa7a21ca06e   13 months ago   763MB
daocloud.io/library/mysql   8.0.13       102816b1ee7d   2 years ago     486MB


# 解释
REPOSITORY    仓库的镜像源
TAG           镜像的标签,显示镜像的版本信息
IMAGE ID      镜像ID
CREATED       镜像的创建时间
SIZE          镜像的大小

# 可选项
Options:
  -a, --all             # 显示所有的镜像
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Don't truncate output
  -q, --quiet           # 只显示镜像的ID


búsqueda acoplable

docker search   # 搜索镜像

Insertar descripción de la imagen aquí

[root@VM-16-16-centos /]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   11665     [OK]
mariadb                           MariaDB Server is a high performing open sou…   4444      [OK]
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   867                  [OK]
percona                           Percona Server is a fork of the MySQL relati…   561       [OK]
phpmyadmin                        phpMyAdmin - A web interface for MySQL and M…   366       [OK]


# 可选项,通过收藏数来进行过滤
Options:
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print search using a Go template
      --limit int       Max number of search results (default 25)
      --no-trunc        Don't truncate output

--filter=STARS=3000  # 搜索出来的镜像就是STARS数量大于3000的镜像

docker search mysql --filter STARS=3000Resultado de la ejecución del comando :
Insertar descripción de la imagen aquí
el número de ESTRELLAS espejo buscadas en este momento es más de 3000


tirón de la ventana acoplable

docker pull  # 拉取镜像  =>  docker pull 镜像名[:tag]

Insertar descripción de la imagen aquí

[root@VM-16-16-centos /]# docker pull mysql
Using default tag: latest           # 如果下载时不指定tar版本,默认就是latest最新版本
latest: Pulling from library/mysql
b380bbd43752: Pull complete         #  分层下载,docker image的核心,联合文件系统
f23cbf2ecc5d: Pull complete
30cfc6c29c0a: Pull complete
b38609286cbe: Pull complete
8211d9e66cd6: Pull complete
2313f9eeca4a: Pull complete
7eb487d00da0: Pull complete
4d7421c8152e: Pull complete
77f3d8811a28: Pull complete
cce755338cba: Pull complete
69b753046b9f: Pull complete
b2e64b0ab53c: Pull complete
Digest: sha256:6d7d4524463fe6e2b893ffc2b89543c81dec7ef82fb2020a1b27606666464d87  #  签名信息
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest  # 真实地址

# 等价于
docker pull mysql
docker pull docker.io/library/mysql:latest

# 指定版本下载
docker pull mysql:5.7

Descargue la versión especificada de Docker
Insertar descripción de la imagen aquí


acoplador rmi

docker rmi 镜像Id # 删除指定镜像

Insertar descripción de la imagen aquí
Eliminar imágenes en lotes

método uno

docker rmi -f $(docker images -aq)  # 删除所有镜像

Método dos:

docker rmi -f 镜像Id1 镜像Id2 镜像Id3...   # 以空格作为分隔符

Insertar descripción de la imagen aquí
Durante el proceso de eliminación, puede encontrar un error que no se puede eliminar porque el contenedor de la imagen se está ejecutando en este momento . Si desea eliminar la imagen, primero debe cerrar el contenedor y ejecutar el comando docker stop 容器Id.

3. Comandos de contenedor

Los contenedores sólo se pueden crear con imágenes.

Siga a Mad God aquí y tome el sistema CentOS como ejemplo.

docker pull centos   # 拉取最新的centos镜像

Extraiga la última versión de la imagen de centos, que equivale a ejecutar un sistema centos en el servidor.
Insertar descripción de la imagen aquí


comando de inicio del contenedor

docker run [可选参数] 容器名称

# 可选参数
--name="Name"   # 容器名称 例如:tomcat01 tomcat02,用来区分容器
-d              # 以后台方式运行容器
-it             # 使用交互方式运行容器,进入容器查看内容
-p              # 指定容器的端口,例如 -p 8080:8080
-P              # 随机指定容器端口

# -p常用命令
-p ip:主机端口:容器端口
-p 主机端口:容器端口 (最常用)
-p 容器端口
容器端口

Insertar descripción de la imagen aquí

[root@VM-16-16-centos /]# docker run -it centos /bin/bash    启动并进入容器
[root@d59c91417c86 /]# ls         查看容器内的内容
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@d59c91417c86 /]# exit       退出容器,从容器中退回到主机
exit
[root@VM-16-16-centos /]# ls      查看容器外的内容
bin  boot  data  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

comando de salida del contenedor

exit   # 从容器中退出到主机的命令

Este comando saldrá directamente del contenedor, pero cerrará y detendrá el contenedor al salir . Si desea salir sin detener el contenedor, presione Ctrl + P + Qpara salir del contenedor sin detenerlo.
Insertar descripción de la imagen aquí


Ver comandos de contenedor

docker ps  # 查看当前正在运行的容器
-a      # 查看当前正在运行的容器+带出历史运行过的容器
-n=?    # 显示最近创建的容器
-q      # 只显示容器的编号

Insertar descripción de la imagen aquí


eliminar comando de contenedor

docker rm 容器Id                # 删除指定容器,不能删除正在运行的容器
docker rm -f $(docker ps -aq)  # 删除所有的容器

Insertar descripción de la imagen aquí


iniciar comando contenedor

docker start 容器Id       # 启动容器
docker restart 容器Id     # 重启容器

detener el comando del contenedor

docker stop 容器Id     # 停止当前正在运行的容器
docker kill 容器Id     # 强制停止当前正在运行的容器

3. Comandos avanzados de uso común de Docker

1. Comandos de contenedor


Iniciar el contenedor en segundo plano.

docker run -d 镜像名称   # 后台启动容器

Problema : cuando se inicia centos en segundo plano, se descubre que el contenedor se ha detenido automáticamente.
Insertar descripción de la imagen aquí
Motivo : los contenedores de Docker deben tener un proceso en primer plano para ejecutarse en segundo plano . Cuando se inicia Docker y descubre que no está proporcionando servicios, automáticamente detener.


Ver comando de registro

docker logs [可选参数] [容器Id]  # 查看指定容器的日志

# 可选项
  -f, --follow         # 只输出指定的日志
  -n, --tail string    # 输出的日志条数,使用-n或--tail命令时必须加行数
  -t, --timestamps     # 输出的日志前有时间信息

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí


Ingrese un contenedor en ejecución

Método uno :

docker exec -it 容器Id bashShell  # 以交互模式进入当前正在运行的容器

# 测试
# 查看当前正在运行的容器
[root@VM-16-16-centos ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
8b58f0b6cfb0   centos    "/bin/bash"   20 minutes ago   Up 20 minutes             laughing_nash
# 进入到指定容器的/bin/bash目录下
[root@VM-16-16-centos ~]# docker exec -it 8b58f0b6cfb0 /bin/bash
# 成功的进入了指定目录
[root@8b58f0b6cfb0 /]#

Método dos:

docker attach 容器Id

# 测试
# 查看当前正在运行的容器
[root@VM-16-16-centos ~]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
8b58f0b6cfb0   centos    "/bin/bash"   27 minutes ago   Up 27 minutes             laughing_nash
# 进入到指定的容器
[root@VM-16-16-centos ~]# docker attach 8b58f0b6cfb0
# 成功的进入了指定容器内部
[root@8b58f0b6cfb0 /]#

La diferencia entre los dos métodos:

  1. docker exec : abre una nueva terminal después de ingresar al contenedor y podrás operar en ella (de uso común)
  2. docker adjuntar : Ingrese a la terminal donde se está ejecutando el contenedor y no iniciará un nuevo proceso.

Ver comandos de proceso de contenedor

Al ver la información del proceso de un contenedor, el contenedor que se va a ver debe ser un contenedor en ejecución.

docker top 容器Id

[root@VM-16-16-centos ~]# docker ps  # 查看当前正在运行的容器
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
8b58f0b6cfb0   centos    "/bin/bash"   10 seconds ago   Up 10 seconds             laughing_nash
[root@VM-16-16-centos ~]# docker top 8b58f0b6cfb0   # 查看指定容器的进程信息
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                1453522             1453502             0                   19:35               pts/0               00:00:00            /bin/bash

Copie archivos en el contenedor al host

docker cp 容器Id:容器内容路径 目的的主机路径

Insertar descripción de la imagen aquí


2. Comando espejo

Ver metadatos de imagen

docker inspect 容器Id

Insertar descripción de la imagen aquí


Resumir

Los anteriores son los comandos básicos de imagen y de contenedor en Docker. Hay muchos más comandos en Docker. Si quieres aprender bien sobre Docker, solo puedes entenderlo y recordarlo usando constantemente los comandos. No hay otro atajo.
Cuando ser fuerte se convierte en la única opción, sabes lo fuerte que puedes ser. Cuando no puedas aguantar, recuerda decirte a ti mismo que aguante un poco más. Si lo piensas mil veces, ¡es mejor hacerlo una vez!
Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_48455576/article/details/121245138
Recomendado
Clasificación