Docker实践:使用Docker搭建个人开发环境(极简版)

这篇具有很好参考价值的文章主要介绍了Docker实践:使用Docker搭建个人开发环境(极简版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明

本文是在服务器已经配置好 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_FRONTEND=noninteractive apt install tzdata git openssh-server vim zsh \ 
    make sudo net-tools inetutils-ping \ 
    language-pack-zh* -y"

Dockerfile 所在文件夹下,执行构建命令:

docker build -t=zhaoliangcheng_image:latest .
  • zhaoliangcheng_image 替换成你为新镜像起的名字
  • latest是版本/标签名称,同样可以改为自定义的名称

2. 编写 docker-compose.yml

新建 docker-compose.yml 文件:

  • 所有写着自定义名称的,都可以用相同的名称,注意不能与他人的重复,最好命名为username_xxx,即用户名_英文字符串
version: '3.8'
name: 自定义名称
services:
  自定义名称:
    init: true
    container_name: 自定义名称
    network_mode: "host"
    privileged: true
    image: Dockerbuild构建出的镜像
    command: tail -f /dev/null
    volumes:
      - "/tmp/.X11-unix:/tmp/.X11-unix:rw"
      - "/dev:/dev:rw"
      - "./ENVIRONMENTS:/root/ENVIRONMENTS:rw"
      - "./SHARE:/root/SHARE:rw"
    working_dir: /root
    environment:
      - DISPLAY=$DISPLAY
      - LC_ALL=C.UTF-8
      - NVIDIA_DRIVER_CAPABILITIES=all
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [compute,graphics,video,utility,display]

例如:

version: '3.8'
name: zhaoliangcheng_container
services:
  zhaoliangcheng_container:
    init: true
    container_name: zhaoliangcheng_container
    network_mode: "host"
    privileged: true
    image: zhaoliangcheng_image:latest
    command: tail -f /dev/null
    volumes:
      - "/tmp/.X11-unix:/tmp/.X11-unix:rw"
      - "/dev:/dev:rw"
      - "./ENVIRONMENTS:/root/ENVIRONMENTS:rw"
      - "./SHARE:/root/SHARE:rw"
    working_dir: /root
    environment:
      - DISPLAY=$DISPLAY
      - LC_ALL=C.UTF-8
      - NVIDIA_DRIVER_CAPABILITIES=all
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [compute,graphics,video,utility,display]

3. 使用容器

所有要保存的数据例如代码、模型等,放在 /root/SHARE/root/ENVIRONMENTS

创建容器

创建容器就好比创建一个虚拟机,只需运行一次创建命令即可。

docker compose up -d

如果修改docker-compose.yml ,那么想要让修改生效,就需要重新执行这条命令,但这会让原容器被删除,因此需要保存好数据

启动容器

当容器创建成功后,以后每次启动容器,都只需执行这条命令:

docker start 容器名称

其中,容器名称是你在 docker-compose.ymlcontainer_name 一项中所填写的自定义名称

进入容器

命令行
docker exec -it 容器名称 bash
VSCode

在扩展中安装Remote插件,安装好后在左侧的远程资源管理器中先连接到服务器,然后在新打开的VSCode窗口中,选择 开发容器 ,右键选择 附加到容器 即可连接

4. 关闭容器

docker stop 容器名称

5. 备份容器

通过备份容器,可以:

  • 在容器环境损坏时快速恢复环境
  • 在服务器与个人电脑间迁移环境

备份容器分为导出导入两个步骤:

  • 导出是将容器导出为 *.tar 文件
  • 导入是将 *.tar 文件中的内容导入成镜像,通过镜像就可以创建容器了

导出

  1. 关闭容器
docker stop 容器名称
  1. 执行导出命令
docker export -o=文件名称.tar 容器名称

导入

  1. 执行导入命令
docker import 文件名称.tar 镜像名称:版本号
  1. 查看系统中所有的镜像
docker images -a

6. 重置容器

如果环境损坏,可以重置容器,恢复环境到某个版本。

重置容器有删除重新创建两个步骤:文章来源地址https://www.toymoban.com/news/detail-604581.html

  1. 删除容器(注意将需要保存的数据移动到 /root/SHARE/root/ENVIRONMENTS 中)
docker compose down
  1. 重新创建容器
    修改 docker-compose.ymlimage 中的 镜像名称:版本号 ,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容器运行)

到了这里,关于Docker实践:使用Docker搭建个人开发环境(极简版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • openGauss 极简版安装

    openGauss 官网   openGauss 下载地址  支持的操作系统 ● ARM:   ● openEuler 20.03LTS(推荐采用此操作系统)   ● 麒麟V10   ● Asianux 7.5 ● X86:   ● openEuler 20.03LTS   ● CentOS 7.6   ● Asianux 7.6 准备软硬件安装环境 # Step 1: 新建用户组、用户 # Step 2: 创建文件夹 # Step 3: 下载安装包

    2023年04月12日
    浏览(26)
  • 手写Openfeign实现原理——极简版

    最近开发cloud项目,里面涉及到服务间调用,最后使用的openfeign解决的,于是对于openfeign的底层原理有些兴趣了,提前透露一下底层无非就是使用一些http调用的工具帮助我们实现了请求调用 首先创建一个springboot项目 有一个发送请求的工具这里使用的ribbon 创建两个自定义注解

    2024年02月10日
    浏览(29)
  • Python大作业(极简版3000字)

    作业要求: 作业要分摘要和正文两部分。在书写时,请注意以下几点: 1.摘要字数在300字左右,可分条描述,但不许有图,表和流程图。 2.正文字数为1500-2000字(截图不算字数)。 3.在编程环境中写代码,并将程序代码及运行结果截图插入文本中。 4.格式要求:中文宋体,英

    2024年02月10日
    浏览(27)
  • Vue父子组件值的传递【极简版】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 在Vue.js中,父组件向子组件传递值通常通过props(属性)来实现。以下是一种典型的方法: 在父组件中,可以使用子组件的标签,并通过props属性将数据传递给子组件

    2024年01月24日
    浏览(37)
  • 使用code-server为Docker容器搭建在线开发环境

    Code-server是一个基于服务端的开源VSCode。只要服务器端配置好code-server,就可以在任何浏览器上使用VScode访问服务器的代码进行编程。(GitHub地址:https://github.com/cdr/code-server) Docker是一个开源的Linux容器引擎。我们在日常的开发任务中可以利用Docker容器快速地搭建实验环境或

    2023年04月08日
    浏览(36)
  • docker使用code-server搭建开发环境 v2.0

    docker安装 1、设置安装目录 2、安装nodejs16 3、安装rust 设置国内更新路径,放到 vim /etc/profile 安装rust 1、下载镜像 2、运行和挂载目录 说一下运行命令 3、配置容器内的环境变量 验证 ip:80 然后输入密码就行

    2024年02月12日
    浏览(36)
  • 使用Docker搭建开发环境:MySQL、Redis、MongoDB和Selenium Grid

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何支持Docker的平台上。在本篇博客中,我们将详细介绍如何用Docker安装MySQL、Redis、MongoDB和Selenium Grid,并给出相应的代码案例。 在开始之前,确保您的系统上安

    2024年02月19日
    浏览(32)
  • openGauss学习笔记-03 openGauss极简版单节点安装

    openGauss支持以脚本方式进行极简安装,极简安装包括单节点安装和一主一备节点安装。 3.1 获取安装包 3.1.1 下载对应平台的安装包 从openGauss开源社区下载对应平台的安装包 登录openGauss开源社区,选择对应平台的最新安装包下载。对于个人开发者或非企业级环境,下载极简安

    2024年02月13日
    浏览(31)
  • 使用VSCode的 Dev Containers 插件搭配Docker 容器进行开发环境的搭建

    需要安装插件 https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers 安装Docker 这样做的好处 每一个项目可以运行一个容器,在容器内开发,相关之间node环境隔离,彻底解决本地包版本依赖关错乱问题 共用宿主机的git 配置, 如果用的是 alpine 版本的镜像,则没有

    2024年01月21日
    浏览(58)
  • Docker一键安装个人基础开发环境-MySQL、Redis、MongoDB

    Docker Compose 在个人开发环境中,使用 Docker Compose 可以极大地简化和优化应用程序的部署和管理过程。 Docker Compose 的配置文件通常采用 YAML 格式,使其易于阅读和编写。我们可以在配置文件中指定所需的容器镜像、端口映射、环境变量、数据卷挂载等配置选项,以及容器之间

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包