使用Dockerfile生成docker镜像和容器的方法记录

一、相关介绍

Docker 是一个开源的容器化平台,其中的主要概念是容器和镜像。
容器是 Docker 的运行实例。 它是一个独立并可执行的软件包,包含了应用程序及其依赖的所有组件(如代码、运行时环境、系统工具、库文件等)。容器可以在不同的环境中运行,具有隔离性和可移植性,不会受到底层系统或其他容器的影响。

镜像是一个只读的模板,用于创建容器。 它包含了一个完整的文件系统,其中包含应用程序和所有的依赖项。镜像可以被复制和分享,用于在不同的环境中创建多个相同的容器实例。每个容器都是基于镜像创建的,它们与镜像共享基础文件系统,但会在其上添加一个可写的文件系统层,使得容器是可变的。

镜像可以通过 Dockerfile 定义和构建,Dockerfile 是一个文本文件,包含了一系列的指令和配置,用于自动化地构建镜像。使用 Dockerfile,你可以定义容器所需的操作系统、软件包、环境变量、文件副本等。

个人看法:

docker用的还不熟练,也正因此好好做个记录。docker主要是通过Dockerfile生成镜像形成一个独立的工作空间,可移植性好,部署方便。目前对于怎么配置docker命令环境还不了解,也没多少专业的介绍,记录一下相关操作方法。

二、操作方法

1、打docker上传

①准备Dockerfile文件

FROM 从已有镜像继承

或者从装库等基本环境配置Dockerfile,一般要建立工作文件夹,把要用到的代码工具COPY到工作文件夹下

②在Dockerfile同一路径下打镜像,REPOSITORY:TAG 表示镜像名标签,注意最后要加点 .
python 复制代码
docker build -t REPOSITORY:TAG .
③查看镜像是否生成
python 复制代码
docker images
④打标签,给镜像换规范名称或其他名称,对应REPOSITORY:TAG
python 复制代码
docker tag old:old new:new
⑤把生成的镜像推到平台,这个目的是在平台上调用生成的镜像,直接生推还容易出问题,感觉是非必要操作
python 复制代码
docker push REPOSITORY:TAG

2、基于修改现有容器进行更新上传

①查找容器
python 复制代码
docker ps -a

或检索关键字xxx

python 复制代码
docker images | grep xxx
②进入要修改的容器
python 复制代码
docker run -it REPOSITORY:TAG /bin/bash
③查找需要修改的文件,a编辑,esc切换编辑
python 复制代码
vim file
④退出当前镜像,提交修改后的镜像
python 复制代码
docker commit -m='description' -a='author' REPOSITORY:TAG
⑤push上平台,如有需求

3、镜像测试,直接在镜像内测试代码,或者在平台执行查看日志,查看日志命令

python 复制代码
kubectl get pods -n xxx-theme
kubectl logs -f -n xxx-theme job-xxx

ctrl + c退出查看日志

4、镜像删除

①先删除容器,查看运行容器名 CONTAINER_ID、CONTAINER_NAME
python 复制代码
docker ps

或查看所有容器

python 复制代码
docker ps -a
②先停止运行容器
python 复制代码
docker stop CONTAINER_ID/CONTAINER_NAME
③删除容器
python 复制代码
docker rm CONTAINER_ID/CONTAINER_NAME
④删除镜像 IMAGE_ID
python 复制代码
docker rmi IMAGE_ID
相关推荐
张忠琳26 分钟前
【k3s】AutoK3s v0.9.3 —— Part 7 辅助模块超深度逐行分析
云原生·容器·kubernetes·k3s·autok3s
张忠琳10 小时前
【k3s】AutoK3s v0.9.3 Part 1 入口与 CLI 命令模块 — 超深度逐行分析之三
云原生·容器·kubernetes·k3s·autok3s
apgk115 小时前
基于Canal实现mysql数据同步到消息队列(RabbitMQ/Kafka)详细操作教程
docker·kafka·rabbitmq
fatcoder15 小时前
玩转Docker 06 — 容器网络
前端·后端·docker
xiaoxiangsiyan17 小时前
企业日常运维高频应用服务全解
运维·网络·云原生·容器·dns
AR_xsy17 小时前
docker--资源配额 配置
运维·docker·容器
国际云,接待17 小时前
Docker 容器突然退出、服务莫名重启:从 OOMKilled 到内存泄漏的生产排查手册
运维·docker·容器
橙-极纪元18 小时前
把docker的镜像文件从一台服务器中,迁移至另一台服务器
服务器·docker·容器
RobinDevNotes20 小时前
K8s+Ray+vLLM打穿大模型全生命周期(有实践步骤)
人工智能·云原生·容器·kubernetes·生活·vllm
雨声不在20 小时前
docker-android 重启后镜像起不来
android·docker·容器