docker镜像容器创建和保存

本文详细介绍了如何在Ubuntu系统中,使用Dockerfile创建自定义镜像wwy/cuda8:v1.0,通过nvidia-docker在后台运行容器,并进行挂载宿主机目录。接着,通过docker commit保存容器为新镜像wwy/cuda8:v2.0,并验证新镜像的内容。教程还包括了如何使用docker ps和docker images等命令进行容器和镜像的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(前提:ubuntu系统,docker和nvidia-docker都已就绪,引用他人镜像文件、利用Dockerfile写好需要安装的一些基础库、创建并增加自己想要的东西、并保存为新镜像或覆盖原镜像(即image)已经完毕)

第一步 创建:

创建容器(此处名为wwy/cuda8:v1.0)

sudo docker build -t wwy/cuda8:v1.0 .(以下为安装过程)

以容器可后台运行方式进入容器
  1. nvidia-docker run -it -d wwy/cuda8:v1.0 /bin/bash(-d是可以后台运行的意思)
  2. docker exec -it 上一条命令输出的 /bin/bash(这个命令可运行容器,想打开容器的多个终端页面,运行此命令)。
  3. 和新系统/虚拟环境安装所需要的库一样的步骤,按需配置。为了提高下载速度,记住首先更换各种软件源。

注:
单纯开启容器可用:
nvidia-docker run -it wwy/cuda8:v1.0 /bin/bash
docker挂载到宿主机,实现互相访问挂载目录采用 参数:“-v+主机地址+docker里的地址” 的方式:
nvidia-docker run -it -d -v /home/your/address/:/address/in/docker wwy/cuda8:v1.0 /bin/bash(-d是可以后台运行的意思)

### Docker镜像容器的关系及区别 #### 关系 Docker镜像创建容器的基础,它为应用程序提供了一个标准化的运行环境模板[^4]。当启动一个容器时,实际上是基于某个特定的Docker镜像创建的一个具体实例。因此,可以说Docker容器是从Docker镜像派生出来的动态实体。 #### 区别 1. **定义层面** - Docker镜像是只读的模板,含了操作系统、用户添加的软件及其依赖项等所有必要的组件,用于部署应用服务。 - Docker容器是由镜像实例化而来的一种可执行单元,在其基础上增加了额外的一层文件系统(即写入层),允许修改数据并保存状态变化[^3]。 2. **生命周期管理** - 镜像本身不会改变;如果需要更新,则需重新构建新的版本或者拉取远程最新的副本到本地存储中[^1]。 - 容器具有独立的生命期——它们可以被启动、停止甚至销毁。即使源镜像未变,不同时间点产生的多个容器之间也不会相互影响[^2]。 3. **结构组成** - 一个完整的Docker镜像可能由若干层构成,每一层都代表了一定的功能模块或配置调整。其中最底层称为基础镜像(Base Image),其余各层依次依附在其上形成父子关系(Parent Images)。 - 当实际运行某镜像生成相应容器的时候,会再叠加一层临时性的“容器层”,此部分专供当前进程操作使用,并且能够持久化记录发生的任何改动直至该个体结束为止。 ```bash # 查看正在运行中的容器列表命令示例 docker ps # 基于指定名称/标签(tagged version) 的官方稳定版Nginx Web服务器镜像来新建并开启关联的服务端口映射后的交互式前台模式下的测试用容器例子 docker run --name some-nginx -p 8080:80 nginx:stable-perl bash ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值