Docker

镜像和容器

  • 镜像构建: 镜像是通过 Dockerfile 中的指令构建的。Dockerfile 是一个文本文件,包含了创建镜像所需的指令,例如基础镜像、软件安装、配置文件等。

  • 镜像层: 镜像是由多个层(Layers)组成的。每个指令在 Dockerfile 中都创建一个新的层。层是只读的,且可以被共享。当多个镜像共享相同的层时,可以节省存储空间。

  • 可重复构建: Docker 镜像的构建是可重复的,只要 Dockerfile 不变,相同的镜像可以在不同的环境中构建而得到相同的结果。这提高了构建的一致性和可移植性。

  • 分层存储: 镜像使用分层存储的机制,即每个层都是只读的,并且对其的修改会在新的层中创建。这使得镜像可以轻松地被更新和共享。

Docker容器有自己的文件系统,网络系统,进程空间,它们共享主机操作系统的内核

常用命令

html 复制代码
docker run:运行容器
docker run -it --name my_container my_image
-it: 以交互模式运行容器,并分配一个伪终端。
--name: 为容器指定一个名称。
html 复制代码
docker ps:显示运行中的容器
docker ps -a
-a: 显示所有容器,包括已经停止的。
html 复制代码
docker exec:在运行中的容器中执行命令
docker exec -it my_container bash
-it: 以交互模式运行命令。
html 复制代码
docker stop:停止容器
docker stop my_container
html 复制代码
docker start:启动已停止的容器
docker start my_container
html 复制代码
docker restart:重启容器
docker restart my_container
html 复制代码
docker build:构建镜像
docker build -t my_image .
-t: 为镜像指定一个名称。
html 复制代码
docker pull:拉取远程镜像
docker pull remote_registry/my_image
html 复制代码
docker push:推送镜像到远程仓库
docker push remote_registry/my_image
html 复制代码
docker images:列出本地镜像
docker images
html 复制代码
docker rm:删除容器
docker rm my_container
可以使用 -f 强制删除运行中的容器。
html 复制代码
docker rmi:删除镜像
docker rmi my_image
可以使用 -f 强制删除正在运行的容器。
html 复制代码
docker network ls:列出网络
docker network ls
html 复制代码
docker volume ls:列出卷
docker volume ls

运行数据的持久化:挂载

当容器使用mysql服务时,如果删除容器那么mysql存储的数据也销毁了,当我们将卷或者本机文件挂载到容器的目录上,那么即时容器删除,数据也还在。

将主机路径挂载到容器中:

使用 -v 或 --mount 选项,可以将主机上的路径挂载到容器中。例如:

bash

Copy code

docker run -v /host/path:/container/path my_image

删除挂载:

使用 docker volume rm 命令可以删除一个或多个不再需要的挂载。

bash

Copy code

docker volume rm my_volume

加粗样式Docker 的卷(Volumes)是一种持久化存储数据的机制,用于在容器之间共享和保存数据。卷可以独立于容器的生命周期存在,提供了对容器中数据的持久性支持。以下是关于 Docker 卷的一些重要概念和用法:

创建卷:

使用 docker volume create 命令可以创建一个新的卷。

docker volume create my_volume

查看卷列表:

使用 docker volume ls 命令可以列出所有可用的卷。

docker volume ls

查看卷详细信息:

使用 docker volume inspect 命令可以获取卷的详细信息。

docker volume inspect my_volume

将卷挂载到容器:

在运行容器时,可以使用 -v 或 --mount 选项将卷挂载到容器的指定路径。这允许容器与卷之间进行数据共享。

docker run -v my_volume:/path/in/container my_image

匿名卷:

使用 -v 选项,可以创建一个匿名卷,其名称是由 Docker 自动生成的。

docker run -v /path/in/container my_image

挂载主机路径:

使用 -v 选项,可以将主机上的路径挂载到容器中,实现容器和主机之间的数据共享。

docker run -v /host/path:/container/path my_image

数据卷容器:

可以创建一个专门用于存储卷的数据的容器,其他容器可以通过 --volumes-from 选项来访问这个数据卷容器。

docker create -v /data --name data_container my_image

docker run --volumes-from data_container another_image

删除卷:

使用 docker volume rm 命令可以删除一个或多个不再需要的卷。

docker volume rm my_volume

Docker 卷的使用使得容器中的数据可以持久化,不受容器生命周期的影响。这对于在容器化应用中存储重要的数据和配置信息非常有用。

相关推荐
zzywxc78721 分钟前
自动化测试框架是软件测试的核心基础设施,通过预设规则和脚本自动执行测试用例,显著提高测试效率和覆盖率。
运维·人工智能·自动化·prompt·测试用例·流程图
郝学胜-神的一滴38 分钟前
深入探索 Python 元组:从基础到高级应用
运维·服务器·开发语言·python·程序人生
CheungChunChiu42 分钟前
嵌入式 Linux 启动机制全解析:从 Boot 到 Rootfs
linux·运维·服务器·ubuntu·uboot·boot·extboot
白鹭43 分钟前
nginx(介绍+源码安装+平滑升级和回滚)
linux·运维·服务器·nginx·回滚·平滑升级
wanhengidc2 小时前
云手机在办公领域中自动化的应用
运维·智能手机·自动化
en-route2 小时前
Kubernetes Ingress:使用 Apache APISIX 进行外部流量路由
容器·kubernetes
知星小度S4 小时前
系统核心解析:深入操作系统内部机制——进程管理与控制指南(一)【进程/PCB】
linux·运维·服务器·进程
码农101号8 小时前
运维安全05 - iptables规则保存与恢复
运维·网络·安全
bug攻城狮9 小时前
解决Ubuntu中apt-get -y安装时弹出交互提示的问题
linux·运维·ubuntu
夜阑珊夭夭10 小时前
linux自定义网卡名字
linux·运维