关于docker的使用心得

来公司后先熟悉项目,项目熟悉完了,就要问用docker进行本地的部署,但是我没有用过docker,我只是听过,所以现在就学习docker

首先关于docker的用处,其实在我们日常开发了一个小程序后或者一个项目后,打包发给别人,想让别人在他的电脑里面跑起来,但是发现因为版本不一样以及环境的问题,所以就造成运行不了的问题,其实这个时候有docker就很好解决了:

这里我们首先要讲清楚一些概念,先是image即镜像,镜像顾名思义,就是创建了一个和你一样的环境,或者说创建了一个和你一样的电脑,这个电脑里面有你的项目,你配置的文件以及各种环境,有些人就要疑惑了这不就是虚拟机吗?非也,虚拟机和这个还是有本质的差别的,虚拟机你是不是要分配相关的运行内存才能跑起来,最直观的体现就是你要开机,然后人家占用了几个g,但是docker就不需要担心这个问题,它小巧只有十几个mb,这也和docker与你共用一个系统有关系。我们有了镜像就可以创建容器了,容器顾名思义,这两者关系就好像制作图纸和成品一样,也就是说我们可以通过这个镜像创建出我们需要的"电脑",在这个上面跑程序

这里在运行电脑的时候,你会发现每个容器用了就没了的,如图:

这里我run了一个容器,创建一个txt文件并写入,退出后重新进入发现test文件没有了,这是因为我们再跑是跑的一个新的容器旧的上转转回收了(狗头),那么既然这样我如何让二者进行交互呢?因为我跑程序跑出的结果,总不能丢在容器里面取不出来把,那有什么用,这个时候就需要用到挂载了,挂载就是一个用于容器与你本地电脑之间通信的通道,我们可以通过挂载实现相关的通信:

bash 复制代码
docker run -it -v "你本地电脑的的文件路径":"容器电脑的文件路径" ubuntu:20.04 bash

我们可以通过这样的方式来进行相关的信息交流

当然,这种还是最简单的,其实难的不是这里,而是你如何创建一个镜像,也就是说从无到有的创建你的环境配置,这里我们需要编写dockerfile文件,通过dockerfile来告诉容器做什么怎么变成和镜像一样的环境,dockerfile的语法如下:

复制代码
# 指定基础镜像
FROM ubuntu:22.04

# 设置维护者信息
LABEL maintainer="your-email@example.com"

# 设置环境变量
ENV APP_HOME /app

# 创建工作目录
WORKDIR $APP_HOME

# 复制文件到镜像
COPY . .

# 执行命令
RUN apt-get update && apt-get install -y python3

# 暴露端口
EXPOSE 8080

# 启动命令
CMD ["python3", "app.py"]
相关推荐
代码方舟16 分钟前
O2O二手车交易平台B端车商管理后台:基于天远车信盟出险构建自动化车况评估网关
java·运维·人工智能·自动化
数智启示录27 分钟前
PostgreSQL 内存调优实战(第 12 篇):work_mem 只调大 64 倍,峰值为什么远不止 64 倍
运维·数据库·经验分享·postgresql·面试
一个向上的运维者37 分钟前
Kubernetes 网络三部曲:CNI、kube-proxy 与 CoreDNS 是如何协作的?
网络·容器·kubernetes
云登指纹浏览器43 分钟前
RPA 与指纹浏览器集成:多账号自动化运营的5项环境配置
运维·自动化·rpa
wtblszn1 小时前
城市内河在线监测系统方案
运维·物联网
DolitD1 小时前
实时云渲染多应用并发:CELL容器技术突破3D隔离瓶颈
云原生·容器·实时互动·图形渲染·数据可视化
鹤落晴春2 小时前
【K8s】Kustomize管理
云原生·容器·kubernetes
Le_ee2 小时前
科来流量分析/结合MCP自动化
运维·自动化
发光的沙子2 小时前
嵌入式系统架构师----Ubuntu如何安装不在列表内的软件?
linux·运维·ubuntu
C+ 安口木2 小时前
Alibaba Cloud Linux 3 服务器环境搭建实战记录
linux·运维·服务器