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>:/容器/路径/文件 /本地/路径/文件
相关推荐
aherhuo8 分钟前
基于openEuler22.09部署OpenStack Yoga云平台(一)
linux·运维·服务器·openstack
WebDeveloper200111 分钟前
如何使用美国域名中心US Domain Center和WordPress创建商业网站
运维·服务器·css·网络·html
老大白菜33 分钟前
Windows 11 安装 Dify 完整指南 非docker环境
windows·docker·容器
檀越剑指大厂35 分钟前
【Linux系列】Shell 脚本中的条件判断:`[ ]`与`[[ ]]`的比较
linux·运维·服务器
2301_819287123 小时前
ce第六次作业
linux·运维·服务器·网络
CIb0la3 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
武汉联从信息3 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
天天进步20153 小时前
STUN服务器实现NAT穿透
运维·服务器
PieroPc3 小时前
Python 自动化 打开网站 填表登陆 例子
运维·python·自动化
VinciYan4 小时前
基于Jenkins+Docker的自动化部署实践——整合Git与Python脚本实现远程部署
python·ubuntu·docker·自动化·jenkins·.net·运维开发