Directorio de artículos
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
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 # 查看本机上的所有镜像
[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 # 搜索镜像
[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=3000
Resultado de la ejecución del comando :
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]
[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
acoplador rmi
docker rmi 镜像Id # 删除指定镜像
Eliminar imágenes en lotes
método uno
docker rmi -f $(docker images -aq) # 删除所有镜像
Método dos:
docker rmi -f 镜像Id1 镜像Id2 镜像Id3... # 以空格作为分隔符
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.
comando de inicio del contenedor
docker run [可选参数] 容器名称
# 可选参数
--name="Name" # 容器名称 例如:tomcat01 tomcat02,用来区分容器
-d # 以后台方式运行容器
-it # 使用交互方式运行容器,进入容器查看内容
-p # 指定容器的端口,例如 -p 8080:8080
-P # 随机指定容器端口
# -p常用命令
-p ip:主机端口:容器端口
-p 主机端口:容器端口 (最常用)
-p 容器端口
容器端口
[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 + Q
para salir del contenedor sin detenerlo.
Ver comandos de contenedor
docker ps # 查看当前正在运行的容器
-a # 查看当前正在运行的容器+带出历史运行过的容器
-n=? # 显示最近创建的容器
-q # 只显示容器的编号
eliminar comando de contenedor
docker rm 容器Id # 删除指定容器,不能删除正在运行的容器
docker rm -f $(docker ps -aq) # 删除所有的容器
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.
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 # 输出的日志前有时间信息
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:
- docker exec : abre una nueva terminal después de ingresar al contenedor y podrás operar en ella (de uso común)
- 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:容器内容路径 目的的主机路径
2. Comando espejo
Ver metadatos de imagen
docker inspect 容器Id
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!