Dockerfile构建镜像使用命令

一、Dockerfile构建镜像使用命令

1.写Dockerfile文件,在目录下构建

bash 复制代码
docker build -t <镜像名称或ID>:<版本号> .
eg. 
docker build -t image_name:latest .

建议Dockerfile文件使用 NVIDIA CUDA 11.8 运行时镜像

bash 复制代码
FROM nvidia/cuda:11.8.0-runtime-ubuntu18.04

2.导出镜像

bash 复制代码
# 方式0:使用docker save
sudo docker save -o image_name.tar image_name:latest

# 方式1:使用docker save和gzip管道
docker save image_name:latest | gzip > image_name.tar.gz

# 方式2:先保存为tar再压缩
docker save -o image_name.tar image_name:latest
gzip image_name.tar

# 方式3:使用tar命令直接压缩
docker save image_name:latest | tar -czf image_name.tar.gz -

3.在另一台电脑加载镜像

bash 复制代码
sudo docker load -i image_name.tar
# 或从压缩文件导入
sudo docker load -i image_name.tar.gz

4.运行容器

bash 复制代码
docker run -d \
  --name image_name_v1 \  # 生成容器的名称(运行环境的名称)
  -v /mywork/code:/app/code \  # 挂载代码的路径
  -v /mywork/datasets:/app/datasets \  # 挂载前后端数据存储的路径,为了方便通信取到数据
  --network host \  #  使用主机模式
  --gpus all \  # 使用GPU
  image_name:latest  # 镜像名称

5.启动容器

bash 复制代码
docker start <容器名称或ID>

6.进入容器

bash 复制代码
docker exec -it <容器名称或ID> /bin/bash

查看容器状态

bash 复制代码
docker <镜像名称或ID> status

重启容器

bash 复制代码
docker restart <镜像名称或ID>

停止容器

bash 复制代码
docker stop <容器名称或ID>

删除容器

bash 复制代码
docker rm <容器名称或ID>

删除镜像

bash 复制代码
docker rmi <镜像名称或ID>

7. docker commit 命令

注:把修改后的容器保存为镜像,黑箱操作,不建议。

Docker 提供了一个 docker commit 命令,可以将容器的存储层保存下来成为镜像。换句话说,就是在原有镜像的基础上,

再叠加上容器的存储层, 并构成新的镜像。以后我们运行这个新镜像的时候,就会拥有原有容器最后的文件变化。

bash 复制代码
docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
eg.
docker commit --message "修改了默认网页" \
--author "Tao Wang <twang2218@gmail.com>" \

8. 个人环境polyiou编译

linux编译

bash 复制代码
cd polyiou
g++ -shared -fPIC -o _polyiou.so polyiou.cpp polyiou_wrap.cxx -I/home/gw/miniconda3/envs/vit-adapter/include/python3.8 -L/home/gw/miniconda3/envs/vit-adapter/lib -lpython3.8

win编译

基于分析,推荐用户在 Visual Studio 2022 开发人员命令提示符中使用上述编译命令。确保 Python 路径正确,并匹配 Python 和编译器的位数。

bash 复制代码
cl /LD /Fe_polyiou.dll polyiou.cpp polyiou_wrap.cxx /I"D:\ProgramData\anaconda3\envs\ImageSegmentation\include" /link /LIBPATH:"D:\ProgramData\anaconda3\envs\ImageSegmentation\libs" /OUT:_polyiou.dll python38.lib
bash 复制代码
cl /LD /Fe_polyiou.dll polyiou.cpp polyiou_wrap.cxx /I"D:\ProgramData\anaconda3\envs\ImageSegmentation\include" /link /LIBPATH:"D:\ProgramData\anaconda3\envs\ImageSegmentation\libs" python38.lib std:c++17 

ultralytics 安装

bash 复制代码
cd yolo
pip install -e .
相关推荐
JWASX2 分钟前
【agent 开发】Agent 智能体
大数据·人工智能·python
智购科技无人售货机工厂店6 分钟前
玻璃瓶饮料破损率突然上升,排查发现是取货口缓冲垫老化了~YH
java·开发语言·人工智能·python·eclipse
JWASX14 分钟前
【agent 开发】agent 开发学习 - LangChain(2)
python·学习·langchain
kimnoic28 分钟前
Python常用标准库模块及查询使用方法
开发语言·python
范中勤29 分钟前
Python 与 Java:模块、包、对象、反射核心差异总结
java·python·面试·反射·元类
I Am a robert girl29 分钟前
HelixWorld 源码剖析:当世界模型第一次“开口说话”
python·多模态·扩散模型·世界模型·自回归·空间音频·流式推理
ab12376831 分钟前
Spring Integration 完整笔记 + 和 spring-integration-mqtt、Paho、EMQX 的关系
java·笔记·spring
棉猴32 分钟前
玩游戏学Python6-演员Actor
python·pygame·玩游戏·游戏编程·actor·pgzero
ACP广源盛139246256731 小时前
Type-C 扩展坞方案选型笔记|国产 DP1.2 转 HDMI2.0 桥接芯片 GSV2201D@ACP 评估
开发语言·笔记·硬件架构·硬件工程·hdmi·国产芯片
旖旎夜光1 小时前
【LangGraph实战】LangGraph 学习笔记(四):持久化——从线程记忆到跨会话长期记忆
人工智能·笔记·python·学习·ai编程·langgraph