开发笔记
推荐链接
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>:/容器/路径/文件 /本地/路径/文件