柳州做网站优化,门户网站后台建设模块,多渠道分销系统,如何创建网站快捷方式到桌面文章目录 说明教程1. 编写 Dockerfile2. 编写 docker-compose.yml3. 使用容器创建容器启动容器进入容器命令行VSCode 4. 关闭容器5. 备份容器导出导入 6. 重置容器 相关资料文章合集详细了解本文在个人电脑上安装 Docker容器使用 NVIDIA 显卡托管镜像运行GUI程序 说明
本文是在… 文章目录 说明教程1. 编写 Dockerfile2. 编写 docker-compose.yml3. 使用容器创建容器启动容器进入容器命令行VSCode 4. 关闭容器5. 备份容器导出导入 6. 重置容器 相关资料文章合集详细了解本文在个人电脑上安装 Docker容器使用 NVIDIA 显卡托管镜像运行GUI程序 说明
本文是在服务器已经配置好 Docker 相关环境的情况下简要介绍了在服务器上如何构建 Docker 镜像来搭建个人开发环境因此本文不涉及 Docker 的安装、维护以及各种细节若要详细了解请查看文章最后的 相关资料 一节。
教程
以下所有操作均在同一文件夹例如 /media/username/Docker 文件夹内进行。请在自己的目录下新建一个 Docker 文件夹
1. 编写 Dockerfile
新建 Dockerfile 文件
FROM 后跟需要使用的基础镜像你的镜像会在此基础上构建可以省去很多配环境的步骤例如使用NVIDIA官方提供的cuda镜像可以省去手动配cuda环境的步骤 nvidia/cuda:12.2.0-devel-ubuntu22.04。更多版本见nvidia/cuda。RUN /bin/bash -c 后面的双引号中添加你在配环境过程中需要执行的命令不用写出所有的命令进入容器后还可以继续配环境。
FROM registry.cn-hangzhou.aliyuncs.com/2h1c_aliyun/accelerate:nvidia_cuda_12.2.0-devel-ubuntu22.04# 每一个RUN命令都会在镜像中构建一个“层”
# 从DEBIAN_FRONTEND开始往下的都是安装命令仅为示例非必须
RUN /bin/bash -c sed -i s/archive.ubuntu.com/mirrors.ustc.edu.cn/g /etc/apt/sources.list \ sed -i s/security.ubuntu.com/mirrors.ustc.edu.cn/g /etc/apt/sources.list \ apt update apt upgrade -y
RUN /bin/bash -c DEBIAN_FRONTENDnoninteractive apt install tzdata git openssh-server vim zsh \ make sudo net-tools inetutils-ping \ language-pack-zh* -y在 Dockerfile 所在文件夹下执行构建命令
docker build -tzhaoliangcheng_image:latest .将 zhaoliangcheng_image 替换成你为新镜像起的名字latest是版本/标签名称同样可以改为自定义的名称
2. 编写 docker-compose.yml
新建 docker-compose.yml 文件
所有写着自定义名称的都可以用相同的名称注意不能与他人的重复最好命名为username_xxx即用户名_英文字符串
version: 3.8
name: 自定义名称
services:自定义名称:init: truecontainer_name: 自定义名称network_mode: hostprivileged: trueimage: Dockerbuild构建出的镜像command: tail -f /dev/nullvolumes:- /tmp/.X11-unix:/tmp/.X11-unix:rw- /dev:/dev:rw- ./ENVIRONMENTS:/root/ENVIRONMENTS:rw- ./SHARE:/root/SHARE:rwworking_dir: /rootenvironment:- DISPLAY$DISPLAY- LC_ALLC.UTF-8- NVIDIA_DRIVER_CAPABILITIESalldeploy:resources:reservations:devices:- driver: nvidiacount: allcapabilities: [compute,graphics,video,utility,display]例如
version: 3.8
name: zhaoliangcheng_container
services:zhaoliangcheng_container:init: truecontainer_name: zhaoliangcheng_containernetwork_mode: hostprivileged: trueimage: zhaoliangcheng_image:latestcommand: tail -f /dev/nullvolumes:- /tmp/.X11-unix:/tmp/.X11-unix:rw- /dev:/dev:rw- ./ENVIRONMENTS:/root/ENVIRONMENTS:rw- ./SHARE:/root/SHARE:rwworking_dir: /rootenvironment:- DISPLAY$DISPLAY- LC_ALLC.UTF-8- NVIDIA_DRIVER_CAPABILITIESalldeploy:resources:reservations:devices:- driver: nvidiacount: allcapabilities: [compute,graphics,video,utility,display]3. 使用容器
所有要保存的数据例如代码、模型等放在 /root/SHARE 或 /root/ENVIRONMENTS 中
创建容器
创建容器就好比创建一个虚拟机只需运行一次创建命令即可。
docker compose up -d如果修改了 docker-compose.yml 那么想要让修改生效就需要重新执行这条命令但这会让原容器被删除因此需要保存好数据
启动容器
当容器创建成功后以后每次启动容器都只需执行这条命令
docker start 容器名称其中容器名称是你在 docker-compose.yml 的 container_name 一项中所填写的自定义名称
进入容器
命令行
docker exec -it 容器名称 bashVSCode
在扩展中安装Remote插件安装好后在左侧的远程资源管理器中先连接到服务器然后在新打开的VSCode窗口中选择 开发容器 右键选择 附加到容器 即可连接
4. 关闭容器
docker stop 容器名称5. 备份容器
通过备份容器可以
在容器环境损坏时快速恢复环境在服务器与个人电脑间迁移环境
备份容器分为导出和导入两个步骤
导出是将容器导出为 *.tar 文件导入是将 *.tar 文件中的内容导入成镜像通过镜像就可以创建容器了
导出
关闭容器
docker stop 容器名称执行导出命令
docker export -o文件名称.tar 容器名称导入
执行导入命令
docker import 文件名称.tar 镜像名称:版本号查看系统中所有的镜像
docker images -a6. 重置容器
如果环境损坏可以重置容器恢复环境到某个版本。
重置容器有删除和重新创建两个步骤
删除容器注意将需要保存的数据移动到 /root/SHARE 或 /root/ENVIRONMENTS 中
docker compose down重新创建容器 修改 docker-compose.yml 的 image 中的 镜像名称:版本号 Docker 就会使用image中的镜像新建一个容器并且 /root/SHARE 和 /root/ENVIRONMENTS 中的数据不会丢失
docker compose up -d相关资料
文章合集
Docker专栏Docker 相关文章合集
详细了解本文
若要详细了解本文中的内容参考Docker实践使用Docker搭建个人开发环境
在个人电脑上安装 Docker
若要在个人电脑上安装 Docker 参考Docker官方文档学习笔记一安装Docker Engine和安装Docker Desktop for Linux二选一。在最新的WSL2中同样可以安装 Docker Engine参考在Windows 11 中安装和使用 WSL 2
容器使用 NVIDIA 显卡
如果个人电脑有NVIDIA独显参考Ubuntu下 NVIDIA Container Runtime 安装与使用使容器也能使用显卡
托管镜像
如果想像使用 GitHub 托管代码一样托管镜像参考使用阿里云管理Docker镜像
运行GUI程序
如果想在容器中运行GUI程序参考Docker容器运行GUI程序的方法直接进入Docker容器运行或通过SSH连接Docker容器运行