新闻详情

新闻详情

首页 / 资讯中心 / 详情

【Docker学习笔记​】

发布时间:2026/10/1 2:15:42来源:尧图网络
【Docker学习笔记​】
Docker学习笔记​唉有记录总比没有记录好万一有所进步了呢。只是选取一部分记录下来了B站up主技术爬爬虾视频链接40分钟的Docker实战攻略1 Docker容器和虚拟机docker容器之间共用一个系统内核每个虚拟机都包含一个操作系统的完整内核。​Docker镜像——是容器的模板就像是软件安装包。Docker容器——就像是软件。Docker仓库——(Docker Registry)用来存放分享镜像的地方。Docker是基于Linux的容器化技术。2 Docker命令——拉取镜像2.1 拉取镜像docker pull docker.io/library/nginx:latestdocker.iorepository是镜像库存放一个镜像的不同版本docker.io表示这是Docker Hub的官方仓库librarynamespace是命名空间(作者名)library是官方仓库的命名空间如果命名空间属于是官方的这部分可以省略不写例如docker pull nginx如果是linux系统使用sudo docker pull nginxlatesttag是标签(版本号)latest表示最新版本。Docker官方仓库的网址https://hub.docker.com2.2 配置镜像站因为防火墙的缘故有一些技术爬爬虾老师写的一个配置镜像站的文档https://github.com/tech-shrimp/docker_installer注我平时是使用清华镜像源或者阿里镜像源这个还没有试过不知道范围修改一下配置文件sudo vi /etc/docker/daemon.json把仓库镜像网址复制过去registry-mirrors:[ https://docker.m.daocloud.io, https://docker.1panel.live, https://hub.rat.dev ]然后重启一下dockersudo service docker restart之后再使用拉取镜像的操作就不会有什么网络问题了sudo docker pull nginx因为是linux系统所以命令总是以sudo开头。如果docker是图形化的界面在 Docker Engine 这里加上去配置镜像即可。2.3 构建镜像有关的命令列出所有下载过的docker镜像docker images删除镜像docker rmi 镜像名字/镜像id例如docker rmi 1e5f3c5b981a。如果加了 -f 就是删除所有的容器。删除容器docker rm 容器名字查看所有容器docker ps创建容器docker volumn create 容器名称2.4 拉取命令参数docker pull --platformxxx nginx这里的–platformxxx表示拉取特定CPU架构的镜像。3 Docker命令——构建镜像docker run 镜像名/镜像id例如docker run nginx该命令执行后将构建镜像并将其启动。docker ps查看正在运行的容器。如果构建的时候没有指定名字系统会自动分配一个随机的名字给容器。这个构建镜像的命令会让命令窗口被占用所以一个更常见的方式是docker run -d [镜像名/镜像id]这里的d表示detached mode也就是分离模式表示让容器在后台执行。3.2 端口映射参数docker run -p 宿主机端口:容器端口 镜像名/镜像iddocker run -p 80:80 nginx执行后打开浏览器输入localhost:80就打开了容器内部署的nginx。4 挂载卷(volume)4.1 绑定挂载docker run -v 宿主机目录:容器内目录无论是修改宿主机目录下的文件夹还是修改容器内目录下的文件夹都会影响对方这种目录被称为挂载卷。它的最大作用是数据的持久化保存删除容器的时候宿主机的数据不会被删除。-v 表示把宿主机的目录跟容器内的目录做一个绑定。使用绑定挂载的时候宿主机的目录会(暂时)覆盖掉容器内的目录。如果宿主机这边的目录是空的那么容器内也没有任何的网页。创建一个文件的命令sudo vi 文件名.后缀名4.2 命名卷挂载创建一个存储空间命名卷-V 卷的名字:容器内目录例如docker run -d -p 80:80 -v nginx_html:/user/share/nginx/html nginx1b218hcjsrbjb3j3j3gj3gdj43bs8q34查看挂载卷的真实目录docker volumn inspect 挂载卷名字想要进入到挂载卷的真是目录在 linux 系统中需要先切换为root用户sudo -i删除卷docker volumn rm 卷名称删除所有没有任何容器在使用的卷docker volumn prune -a5 run其他参数docker可以使用-e给数据库加默认密码–name 可以给容器起一个自定义的名字例如:sudo docker run d --name my_nginx nginx-f 删除正在运行的容器需要接一个这个符号例如sudo docker rm -f my_nginx-it 可以让控制台进入容器进行交互例如:sudo docker run -it --rm alpine。这里的–rm表示当容器停止的时候就把容器删除掉。然后可以使用exit退出容器内部这就是连在一起使用的一套命令。–restart 用来配置容器在停止时的重启策略例如sudo docker run -d --restart always nginx表示只要容器停止了就会立即重启。如果把always换成unless-stopped这样手动停止的容器就不会尝试重启了。6 调试容器docker run 时从镜像创建并运行容器。docker stop命令可以停止指定容器的运行。dcoker ps -a查看所有的容器。docker start 容器名/容器id重新启动指定容器。docker inspect 容器id可以查看容器启动的参数。docker create命令只创建容器但不立即启动。docker logs 容器id/容器名称可以查看容器的日志。如果在logs后面加了-f表示追踪输出可以滚动查看日志。每个docker环境都是一个独立的运行环境每个独立的运行环境都表现得像是一个独立的linux系统。docker exec 容器id linux命令可以在容器内部执行linux命令。linux命令中查看进程一般是ps -ef。例如sudo docker exec 容器id ps -ef可以看到指定容器id的进程资源占用情况。docker exec -it 容器id /bin/sh可以进入一个容器内部获得一个交互式的命令行环境。不过进入以后会发现无法使用vi命令这是因为docker内部是一个极简的操作系统可能没装。可以用cat /etc/os-release查看一下容器内的linux是什么发行版的。如果是debian的使用 apt install vim 下载。7 构建镜像DockerFile是镜像制作的图纸。老师举了一个例子一个fastapi项目想要运行需要有python环境需要下载的包有fastapi、uvicorn这个项目是通过python main.py运行的端口是8000。第一步创建Dockerfile文件它没有后缀名。第二步选择一个基础镜像它会被放在第一行以FROM开头。例如FROM python:3.13-slim。第三步指定工作目录后面的命令都在这个目录下执行WORKDIR /app第四步把文件copy到工作目录中第一个点代表这台电脑的当前目录第二个点代表镜像内的当前工作目录COPY . .第五步安装依赖RUN pip install -r requirements.txt第六步声明镜像提供服务的端口是哪个不过不写也不影响EXPOSE 8000。第七步启动命令CMD [“python3”, “main.py”]。与之类似的是ENTRYPOINT这个优先级更高不容易被覆盖。FROM python:3.13-slim WORKDIR /app COPY . . RUN pip install -r requirements.txt EXPOSE 8000 CMD [python3, main.py]准备好文件之后开始构建。可以用-t给镜像起一个名字。这里的. 指的是在当前文件夹构建。docker build -t 镜像名 .docker run -d -p 端口:端口 镜像名
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

马德拉岛深度旅行指南:徒步路线、美酒品鉴与实用避坑攻略 2026/10/1 6:01:02

马德拉岛深度旅行指南:徒步路线、美酒品鉴与实用避坑攻略

1. 初见Madeira:这不是你想象中的普通海岛很多人第一次听到Madeira,要么是在机场免税店看到一瓶造型复古的琥珀色葡萄酒,要么是在社交平台上刷到一张悬崖峭壁间云雾缭绕的徒步照片。说实话,我当初也是因为一瓶马德拉酒才去查这个地…

阅读更多 →
AgentScope实战:多智能体框架的消息、编排与模型配置解析 2026/10/1 6:01:02

AgentScope实战:多智能体框架的消息、编排与模型配置解析

AgentScope这个名字,最近在多智能体开发圈子里讨论度确实高。我前后把主流方案都摸了一遍,从早期开风气之先的AutoGen,到生态日益壮大的LangGraph,再到今天要聊的AgentScope,实际项目里真正让我觉得“顺手”的&#xf…

阅读更多 →
MediaPipe模型库从入门到实操:Tasks API、.task文件与Model Maker自定义模型全解析 2026/10/1 6:01:02

MediaPipe模型库从入门到实操:Tasks API、.task文件与Model Maker自定义模型全解析

简介:这是一份针对MediaPipe模型加载超时问题的离线模型库缓存包,面向Python/MediaPipe开发者、人工智能初学者以及需要在断网或弱网环境完成实验的群体。压缩包采用rar格式,体积约265.16MB,解压后共包含2386个文件。文件构成丰富…

阅读更多 →
Jev哑巴模型为何爆火?纯文本推理与代码生成实战解析 2026/10/1 6:01:02

Jev哑巴模型为何爆火?纯文本推理与代码生成实战解析

你们最近肯定刷到过"Jev"这个词,尤其是技术圈里,到处都在说"哑巴模型Jev""Jev在Codex里跑"之类的。第一次看到的人估计和我当时一样懵:Jev是个什么东西?为什么一个说不出话的模型能火成这个样子&am…

阅读更多 →
AI日报自动推送微信的工程实践与合规链路 2026/10/1 6:01:01

AI日报自动推送微信的工程实践与合规链路

1. 这不是“发消息”,而是一次跨平台服务链路的精准投递“我给 WorkBuddy 设了个闹钟:每天上午十点半,一份 AI 日报自动送进微信”——这句话乍看像一句轻描淡写的功能描述,但拆开来看,它背后藏着三条必须严丝合缝咬合…

阅读更多 →
OpenCV-Python相机标定:张正友棋盘格法原理与实战 2026/10/1 6:00:55

OpenCV-Python相机标定:张正友棋盘格法原理与实战

简介:这份资源是基于OpenCV-Python实现的张正友相机标定完整实战项目,面向计算机视觉学习者与开发者,解决如何通过棋盘格图像准确获取相机内参、外参及畸变系数的问题。项目采用经典张正友标定法,用平面棋盘格替代复杂的三维标定物…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉