当前位置: 首页 > news >正文

1Docker镜像与容器,目录挂载和卷映射的选择

什么是docker

Docker 是一种工具,可以屏蔽不同底层环境的细节,能把应用和它需要的运行环境打包成镜像,通过容器实现跨环境一致运行,轻量又方便。

docker中比较重要的几个概念:

1:images(镜像)

从仓库下载镜像后,容器就是照着镜像作为模板生成的。镜像本身是静态的 “只读模板”,包含应用运行所需的所有依赖(代码、环境、配置),无法直接修改。

2:Container(容器)

容器相当于镜像的实例,它可以更改内容,并保存成新的镜像

3:Registry(仓库)

镜像都是从仓库下载的,你也可以把镜像上传到仓库

安装docker

1.下载repo文件到本地

wget -O /etc/yum.repos.d/docker.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.安装docker-ce

yum -y install docker-ce

3.启动docker服务并设置开机自启

systemctl start docker
systemctl enable docker

配置镜像加速

1.创建加速配置文件:

vim /etc/docker/daemon.json{"registry-mirrors": ["https://docker.m.daocloud.io","https://1ms.run","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://iju9kaj2.mirror.aliyuncs.com","http://hub-mirror.c.163.com","https://cr.console.aliyun.com","https://hub.docker.com","http://mirrors.ustc.edu.cn"]
}

2.重新加载镜像加速,并重启docker服务

systemctl daemon-reload
systemctl restart docker

docker基本命令

下载镜像
docker pull 镜像名

下载指定版本镜像
docker pull 镜像名:版本号

查看镜像,列出本地主机上已下载的所有 Docker 镜像
docker images

删除镜像

docker rmi 镜像名

运行容器,从指定镜像新建一个容器,并立即启动该容器。
docker run 镜像名

-d 后台运行

--name 起别名

-p 80:80 端口映射,访问主机80等于访问容器80端口

例:docker run -d --name -p 80:80 nginx001 nginx

启动容器,启动一个已经创建但处于停止状态的容器(不会新建容器)。
docker start 容器id

停止容器
docker stop 容器id

重启容器
docker restart 容器id

删除指定容器
docker rm -f 容器id

查看容器
docker ps

列出所有容器(包括正在运行和已停止的)

docker ps -a

进入容器内部,在运行的容器中执行命令,允许交互

docker exec -it 容器名 /bin/bash

docker port  容器名:查看容器的端口映射关系

docker logs 容器名:查看容器的日志输出

保存镜像命令

提交镜像

docker commit [OPTIONS] 容器名 [新镜像名[:标签]]

-a指定镜像作者(如 -a "username <email>")。
-m添加镜像描述信息(如 -m "修改了Nginx默认页面")。
-p提交时暂停容器运行(避免提交过程中容器状态变化,默认 true)。
例:docker commit -m "change index.html" mynginx mynginx:v1.0   --把mynginx这个容器提交成mynginx:v1.0这个镜像,描述信息是更改index

保存镜像

 docker save -o 包名.tar  镜像名:标签

把镜像保存成一个压缩包

docker save -o mynginx.tar mynginx:v1.0

把mynginx:v1.0这个镜像保存成mynginx.tar

加载镜像

docker load -i 压缩包.tar

将通过 docker save 导出的镜像 tar 包导入到本地 Docker 环境

docker load -i mynginx.tar

导入后会在本地恢复 mynginx:v1.0 镜像,包含完整的标签和历史层。

docker存储

目录挂载

目录挂载的核心是 “打破主机与容器的文件隔离,实现直接互通”

docker run -v /主机目录:/容器目录 镜像名

需指定主机绝对路径

 docker run -d --name mynginx -p 80:80 -v /root/app/nghtml:/usr/share/nginx/html mynginx

此命令相当于把主机的/root/app/nghtml目录挂载到容器的/usr/share/nginx/html目录,而这两个目录是双向同步的

卷映射

卷映射使卷创建时就包含指定目录的文件,我认为非常适合用来备份,并且下次启动别的容器时也可以使用此卷

docker run -v 卷名:/容器目录 镜像名

不需要加路径,直接写卷名,所有卷都保存在/var/lib/docker/volumes

docker run -d --name mynginx1 -p 81:80 -v ngconf:/etc/nginx mynginx:v1.0

查看所有卷命令

docker volume ls

目录挂载和卷映射的选择

如果你需要继承容器默认内容(比如不想手动复制 Nginx 默认页面)、或跨环境迁移数据,卷映射确实更省心,避免了 “初始为空” 的麻烦。

但如果你需要实时同步主机文件(比如开发时本地改代码,容器立即生效),目录挂载的 “主机目录优先” 特性反而更实用 —— 初始空目录刚好可以用来放自己的开发文件,覆盖容器默认内容。

这是我的个人学习笔记,主要用于记录自己对知识点的理解和梳理。由于目前仍在学习探索阶段,内容中难免存在理解偏差或表述疏漏,恳请各位大佬不吝赐教,多提宝贵意见~ 若有不同看法,欢迎理性交流探讨,感谢包容与指正!

http://www.dtcms.com/a/474555.html

相关文章:

  • 06_k8s数据持久化
  • c 教学网站开发网页设计尺寸大小规范
  • 第一章:AI大模型基本原理及API应用——第一小节
  • 购物便宜的网站有哪些vivo即将发布的新手机
  • 超级玛丽demo9
  • 汕头站扩建什么时候完成做单屏网站 高度是多少
  • 【Swift】LeetCode 1. 两数之和
  • CI/CD流水线实战:从零搭建到高效部署
  • AprioriFP-Growth算法详解
  • 吕梁网站定制wordpress登录注册页面模板
  • 网站列表页是啥求个网站这么难吗2021年
  • wordpress如何制作网站做影片的网站描述
  • Java Redis “高可用 — 主从复制”面试清单(含超通俗生活案例与深度理解)
  • etcd实战课-实战篇(下)
  • 定制一个网站多少钱企业做网站有用吗天涯
  • 05-k8s网络
  • Stable Diffusion 安装教程(详细)_stable diffusion安装
  • 做网站的dw全称是啥免费软件视频
  • 开源TTS项目 Neutts-Air:架构、训练、推理与应用全景
  • python--手势识别
  • 烟台网站建设设计国内哪家网站建设公司好
  • 实操三、使用cgroups对cpu进行控制
  • 广东建设工程造价管理协会网站网站分析数据
  • Python基础入门例程100-NP100 重载运算(涉及类-难)
  • 路漫漫-数据结构与算法邂逅Java
  • 上海学做网站筑龙网app下载
  • 深入理解动态内存管理(C语言)
  • Viterbi解码算法:从理论到实践
  • 怎么在网站做推广不要钱珠海微信网站开发
  • 【文件快速搜索工具】实用工具强推之Everything-快速搜索工具的详细图文下载安装教程