docker基础

开发笔记

推荐链接

链接目录

docker必备命令

创建镜像与对应容器

javascript 复制代码
//创建镜像
docker build -t <image_name> -f <dockerfile_path> .
//docker build -t mycentos7 -f Dockerfile.centos7 .
//<image_name> 替换为你给镜像起的名称
//<dockerfile_path> 替换为你要使用的 Dockerfile 的名称
//注意最后面的 . 这个代表当前路径
//-t 参数用于指定要为构建的镜像设置的标签(tag)。标签是用于标识和区分不同版本或变体的镜像的可选名称。通过使用 -t 参数,你可以为镜像指定一个易于识别和管理的名称
//-f 参数用于指定要使用的 Dockerfile 文件的路径。通过 -f 参数,你可以告诉 Docker 构建命令要使用不同于默认的文件名和路径的 Dockerfile。

//创建容器
docker run -p <host_port_1>:<container_port_1> -p <host_port_2>:<container_port_2> -v /host/data:/container/data  --name <container_name> <image_name>
//docker run -p 8081:80 -v D:\wamp64\www:/var/www/html --name php8.1 php8.1:latest
//<host_port_1>:宿主机端口,<container_port_1> :容器端口
//-v /宿主机路径:/容器内路径。/host/data:宿主机路径,/container/data:容器路径
//注意:-v D:\wamp64\www:/var/www/html:cached
//在配置容器时,使用 :cached 选项可以改善容器与宿主机之间的文件系统性能。当你在 Windows 上使用 Docker,并且将容器与宿主机的文件共享时,使用 :cached 可以提高文件的读取速度。
//<image_name> 替换为之前生成的镜像的名称。
//-p 参数用于将容器的端口映射到主机的端口。它的格式是 <host_port>:<container_port>,其中 <host_port> 是主机上的端口号,<container_port> 是容器内部的端口号。通过使用 -p 参数,你可以将容器的特定端口与主机上的端口进行绑定,从而使得主机可以通过绑定的端口访问容器内部的服务。
//-v 可以将主机目录挂载到容器内,实现二者数据同步
//--name 参数用于为容器指定一个特定的名称。通过使用 --name 参数,你可以为容器设置一个易于识别和管理的名称,以便在后续的 Docker 命令中引用该容器。这对于管理多个容器或在容器之间进行通信非常有用。

//启动容器
docker start 容器ID或名称
//打开终端
docker exec -it 容器ID或名称 bash
docker exec -it 容器ID或名称 /bin/bash
docker exec -it 容器ID或名称 sh 

//退出容器
exit或者 Ctrl + D
//停止但不删除容器
docker stop 容器ID或名称

修改镜像和容器名称(重新打标签)

javascript 复制代码
//根据原有的镜像去创建新的镜像,镜像的ID都一样
docker tag <镜像ID> <新镜像名称>:<新标签>
docker tag <旧镜像名称>:<旧标签> <新镜像名称>:<新标签>


//容器
docker rename <容器ID> <新容器名称>
docker rename <旧容器名称> <新容器名称>

将容器封装成镜像和tar包

javascript 复制代码
//将现有的容器封装成镜像
//注意:当使用 docker commit 命令将容器转换为镜像时,容器中的端口绑定和网络配置将不会直接转移到新的镜像中。docker commit 只会将当前容器的文件系统状态保存为镜像,并不包括容器的网络配置。
-a, --author:设置新镜像的作者信息。
-c, --change:应用 Dockerfile 指令(如 ENV, CMD, EXPOSE, VOLUME 等)。
-m, --message:添加一条提交消息,用于描述镜像的变更。
-p, --pause:在提交时暂停容器的运行状态。(最好在封装之前就去手动停止容器,不要过于相信命令)

docker commit -a "名称" -m "注释" [容器ID或容器名称] [新镜像名称]


//Docker 镜像,压缩成 tar 归档文件。
//注意:命令中的 -o 选项后应指定一个文件路径,而不是一个文件夹路径。因此,你需要指定一个文件名作为目标文件,而不仅仅是文件夹路径。
docker save -o <输出文件路径> <镜像名称>
docker save -o D:\DockerImages\php.tar php

将tar文件解压成镜像

javascript 复制代码
//这将加载归档文件中的镜像,并使用其原有的名称和标签。
//如果本地已经存在同名镜像,它将会被覆盖。
docker load -i <归档文件路径>.tar

//根据原有的镜像名称和标签创建一个新的镜像名称(重新打名称标签)
docker tag <镜像ID> <新镜像名称>:<新标签>

拷贝数据

javascript 复制代码
//拷贝数据
//文件从本地系统复制到容器
docker cp /本地/路径/文件 <容器名称或容器ID>:/容器/路径/文件

//文件从容器复制到本地系统
docker cp <容器名称或容器ID>:/容器/路径/文件 /本地/路径/文件
相关推荐
XIAOHEZIcode1 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220702 天前
如何搭建本地yum源(上)
运维
武子康2 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树885 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠5 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质5 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工5 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn865 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智5 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_5 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化