关于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"]
相关推荐
天远API33 分钟前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之avcodec_default_get_encode_buffer调用流程与实战(二十八)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频
乐维_lwops2 小时前
案例解读:大型综合性科创产业园运维监控落地实践
运维·网络·人工智能·安全·it监控·国产运维智能体
番茄啊3 小时前
linux 开启xftp连接
linux·运维·服务器
IT利刃出鞘4 小时前
Docker Compose--解决修改配置后不生效的问题
运维·docker·容器
java_logo4 小时前
Docker 部署 CloudBeaver:轻松搭建网页数据库管理平台
数据库·docker·容器·数据库管理·dbeaver·轩辕镜像·cloudbeaver
Lsetea4 小时前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书
Julien20045 小时前
管理机密(一)
运维·服务器·开发语言·学习方法
十碗饭吃不饱5 小时前
后端运维:网络联通、进程查询、Java服务启动脚本
java·运维·网络
好用斋5 小时前
拾光坞安装网盘聚合LitePan:把Docker命令翻译成图形界面
运维·docker·容器