简单指令实现Docker构建镜像启动运行保存导出后再导入新环境完整全流程

您所在的位置:网站首页 汇川机器人程序导入导出 简单指令实现Docker构建镜像启动运行保存导出后再导入新环境完整全流程

简单指令实现Docker构建镜像启动运行保存导出后再导入新环境完整全流程

2023-07-02 02:27| 来源: 网络整理| 查看: 265

项目场景及问题描述

本文做一个简单Docker使用指令指南,可快速实现Docker构建镜像、启动、运行、保存、导出后再导入新环境完整全流程。具体每一个指令又有很多参数和学问,大家可自行查询更详细的解释,本文可用于小白快速构建镜像并使用。

使用Dockerfile自动构建镜像

首先,准备一个Dockerfile,包含你要使用的基础镜像信息。以下面的Dockerfile为例,基础镜像是基于ubuntu20.04操作系统,安装cuda版本为11.2.0,nvidia驱动版本是450.80.02,并安装wget、git、vim、python3、python3-pip、ffmpeg等常用工具,并创建一个工作目录/app。更多参考见本文最后的参考链接,通常GitHub的一些工程也会提供作者使用环境的Dockerfile。

Dockerfile

FROM nvidia/cuda:11.2.0-devel-ubuntu20.04 RUN export DEBIAN_FRONTEND=noninteractive;apt-get update && \ apt-get install -y --no-install-recommends wget git vim python3 python3-pip ffmpeg WORKDIR /app

Dockerfile准备好之后,在Dockerfile所在目录执行以下指令构建镜像。

docker build -t MyUbuntu .

(不要漏掉最后的 “.”哦~) 其中参数 -t 后跟的是镜像的标签名(tag)。docker默认会从build context中查找到 Dockerfile文件,也可通过 -f 参数指定Dockerfile的位置。

镜像创建成功后,可以用 docker images 指令查看创建好的镜像,有REPOSITORY, TAG, IMAGE ID等信息。 dockerimages 以上图为例,最新构建的镜像 REPOSITORY 是 ebxxx06,TAG 是 latest,IMAGE ID 是 4baxxxe34(xxx为马赛克)。

docker run 启动镜像

简单启动指令:

docker run -it

如:

docker run -it MyUbuntu:latest

复杂一些的启动指令:

docker run -it -v /home/app/VeraCode:/app/VeraCode/ -p 8060:8060 --entrypoint="/bin/bash" --gpus all --name MyUbuntu2023 MyUbuntu:latest

其中, 参数 -v 后跟的是本地目录:docker内的目录,两个目录共享 参数 -p 后是端口映射 参数 --gpus all 是启用GPU 参数 --name 后面跟的是容器名称,自取 最后 MyUbuntu:latest 是你要启动的镜像的REPOSITORY:TAG

容器启动后会直接进入容器,指令 exit 可退出容器。

docker exec 运行容器

启动过的容器再次进入运行指令比较简单,不过需要确认容器是否在运行。 指令 docker ps 可查看正在运行的容器 指令 docker ps -a 可查看历史所有容器

dockerps

通常第一次用 run 指令启动容器退出后,容器的状态会是 Exited 通过指令 docker ps -a 查看要启动的容器的 CONTAINER ID,通常只需要用到前三位,首先,确保容器的状态 STATUS 为 Up,如果不是,可通过指令 docker start 或 来使容器处于运行状态,再用如下指令运行容器:

docker exec -it 或 /bin/bash

以上图为例,指令就是:

docker exec -it 074 /bin/bash docker commit 保存容器

将容器打包成镜像可以用 docker commit 指令,这样你运行容器时已经装好的环境,比如pip安装的Python库等等,都可以保留下来,不过这样导出的镜像大小会比最初始基础镜像大很多。指令如下:

docker commit

如:

docker commit 074 MyUbuntu:latest docker save 镜像导出

本地镜像导出可用以下两种指令:

docker save -o MyUbuntu.tar

docker save > MyUbuntu.tar

如:

docker save -o MyUbuntu.tar 4baxxxe34 或 docker save 4baxxxe34 > MyUbuntu.tar

以上 IMAGE_ID 也可以用 替换 如:

docker save -o MyUbuntu.tar MyUbuntu:latest 或 docker save MyUbuntu:latest > MyUbuntu.tar docker load 镜像导入

可以将导出的镜像 MyUbuntu.tar 包传到需要使用该镜像包的docker主机上,导入镜像可用以下两种指令:

docker load -i MyUbuntu.tar

docker load


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3