关于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"]
相关推荐
yangmu32031 小时前
开发网站的完整流程:从0到1上线指南
运维·学习
梦帮科技1 小时前
Linux 内存取证学与 Rootkit 猎杀——Volatility 核心剖析与内核隐藏模块逆向清除
linux·运维·服务器·神经网络·算法·网络安全
无足鸟ICT2 小时前
【RHCA+】软件包
linux·运维·服务器
ManageEngineITSM2 小时前
工单优先级怎么定?影响×紧急度矩阵的设计与落地方法
java·大数据·运维·前端·数据库·变更管理
橙色云-智橙协同研发2 小时前
汽车零部件行业:如何应对主机厂的严苛审核?
大数据·运维·服务器·人工智能·安全
东风微鸣2 小时前
如何发现 K8s 集群里的无用资源?
云原生·容器·kubernetes
fengkai45452 小时前
十四、ELK 企业日志分析系统
运维·elk·日志
程序员-Benothing2 小时前
Linux系统监控工具全家桶:sar、dstat、glances、Prometheus
linux·运维·prometheus
flytalei3 小时前
从YAML到Nginx服务访问:动手理解 Kubernetes Pod、Deployment 与 Service
运维·nginx·kubernetes
白帽攻防录3 小时前
SRC 挖洞:DHCP 服务器上的四个 UAF,内网原生 RCE 怎么打域管
运维·服务器·网络安全·内网安全