【工具】Docker使用指南

安装Docker

#预备软件
sudo apt install apt-transport-https ca-certificates curl software-properties-common
#添加docker的源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
sudo systemctl status docker

离线安装 https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/

sudo dpkg -i nvidia-container-toolkit_1.9.0-1_amd64.deb 
sudo dpkg -i libnvidia-container-tools_1.9.0-1_amd64.deb 
sudo dpkg -i libnvidia-container1_1.9.0-1_amd64.deb 
sudo dpkg -i libnvidia-container-tools_1.9.0-1_amd64.deb 
sudo dpkg -i nvidia-container-toolkit_1.9.0-1_amd64.deb 
sudo dpkg -i nvidia-docker2_2.10.0-1_all.deb 

创建镜像

Dockerfile基本语法

FROM,指定初始系统
RUN,镜像内执行命令
COPY,镜像内复制
ENV,设置镜像内环境变量
ARG,Dockerfile内的变量

FROM ubuntu:16.04
MAINTAINER kirk
RUN apt-get update

构建镜像

在Dockerfile所在路径下,命令为

docker build .

可加参数,-t <镜像标签> -f <path/to/Dockerfile>

常用命令

  1. 重启服务 sudo systemctl daemon-reload sudo systemctl restart docker
  2. 启动docker run -it <镜像ID>
  3. 查看所有镜像 docker imagesdocker image ls
  4. 提交镜像 docker commit -m "commit message" -a "zhangpeike" <镜像ID> <name:tag>
  5. 复制文件 docker cp <本地文件> <镜像ID>:<路径>
  6. 新终端进入运行的容器,docker exec [OPTIONS] CONTAINER COMMAND [ARG…]: docker exec -it 9df1cd89a8fe /bin/bash新开一个正在运行容器的终端docker exec -it <容器ID> /bin/bash
  7. 前端打开运行中的镜像docker attach <镜像ID>
  8. 保存镜像 docker save <镜像ID> > xxx.tar
  9. 导出镜像 docker export <镜像ID> > xxx.tar docker import 新镜像命名 < xxx.tar,注意导出不能保存镜像的历史信息。
  10. 加载镜像 docker load -i xxx.tar
  11. 本地与镜像路径的映射 docker run -v /local_path:/docker_path
  12. 设置共享内存大小:docker --shm-size="16g"
  13. 查看commit记录:docker inspect <镜像ID>

环境设置记录

  1. 编译Dockerfile遇错
    Get https://registry-1.docker.io/v2/: authenticationrequire
    由于网络代理需要
    /etc/systemd/system/docker.service.d/下添加文件docker-proxy.conf
[Service]
Environment="HTTP_PROXY=http://公司账号:密码@proxy.x.com:8080"
Environment="HTTPS_PROXY=http://公司账号:密码@proxy.x.com:8080"
Environment="NO_PROXY=localhost,127.0.0.1"
  1. 第二个问题
    Get https://registry-1.docker.io/v2/: proxyconnect tcp: dial tcp: lookup http: no such host
    推断为无法访问docker镜像官网,设置镜像加速器地址,修改文件/etc/docker/daemon.json
{"registry-mirrors": ["https://xxx.mirror.x.com"]
}

重启daemon和docker

  1. 编译Dockerfile,RUN apt-get install失败
    容器需要代理方可上网,主机上新建或编辑~/.docker/config.json
{"proxies":{"default":{"httpProxy": "http://账号:密码@proxy.x.com:8080","httpsProxy": "http://账号:密码@proxy.x.com:8080","noProxy": "localhost,127.0.0.1"}}
}

设置后镜像中apt-get install出现Failed to fetch http...,软件版本问题,改为apt-get install --fix-missing

安装Nvidia-docker

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \&& curl -s -L udo | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
#Restart the Docker daemon to complete the installation after setting the default runtime

Rviz报错问题分析与解决

运行rviz出错libGL error: No matching fbConfigs or visuals found

安装Nvidia驱动

  1. 查看板卡ubuntu-drivers devices
  2. 自动安装 ubuntu-drivers autoinstall
    问题:缺少依赖,递归安装解决依赖。
  3. 再次运行rviz,提示
No protocol specified
QXcbConnection: Could not connect to display :1
Aborted (core dumped)

需要在主机上执行 xhost +

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/700388.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac怎么运行赛博朋克2077,使用Game Porting Toolkit

Game Porting Toolkit通过转译的方式&#xff0c;将Direct3D指令翻译成Metal指令&#xff0c;让不少Windows游戏都能够在Apple Silicon Mac上成功运行。作为一款开发者工具&#xff0c;运行起来自然有不少的坑&#xff0c;本文手把手带你在M芯片Mac上运行赛博朋克2077。 CrossO…

猫头虎分享已解决Bug || TypeError: props is not a function (React)

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【安装记录】解决ssh密码正确,却无法连接到虚拟机

可能是没有允许Root登录 解决办法&#xff1a;修改/etc/ssh/sshd_config文件&#xff0c;将 PermitRootLogin 项打开

BUGKU-WEB 备份是个好习惯

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; 解题思路 看源码看提示&#xff1a;备份是个好习惯扫描目录md5弱比较 相关工具 御剑md5解密&#xff1a;https://www.somd5.com/ 解题步骤 看到的这串字符&#xff0c;有点像md5&#xff1f; d41d8cd98…

虚拟机Ubuntu系统上安装Pycharm(详细图文教程)

这里写目录标题 一、安装包下载二、安装Pycharm三、启动并配置Pycharm3.1 启动3.2 创建桌面快捷键3.2.1 打开工程后添加桌面快捷键 3.3 安装汉化包 四、创建新的工程项目五、总结 一、安装包下载 Pycharm的官网地址&#xff1a;Pycharm官网 打开官网后的样子如下&#xff1a;…

【NTN 卫星通信】基于NTN和TN的Inter-PLMN海事应用场景

1 场景概述 NTN和TN联合组网的场景&#xff0c;可以有多种应用方式&#xff0c;以下用例描述了同时使用多个卫星PLMN和一个地面5G PLMN的海事场景。 MNO-G是一家成熟的卫星PLMN运营商&#xff0c;运营着几颗GEO卫星。MNO-L是一个相对较新的卫星PLMN运营商&#xff0c;操作LEO卫…

GO语言:map的使用

整个程序首先创建并初始化了一个映射&#xff0c;然后向其中添加了五个学生的名字和分数&#xff0c;最后遍历这个映射并输出每个学生的名字和分数 package main import "fmt" //创建、填充并遍历一个映射&#xff08;map&#xff09;&#xff0c;映射的键&#xff…

解决maven编译错误:程序包com.sun.xml.internal.ws.spi不存在

大家好我是咕噜美乐蒂&#xff0c;很高兴又和大家见面了&#xff01; Maven是一个流行的Java项目管理工具&#xff0c;它可以帮助我们构建、管理和部署Java项目。当在使用Maven编译项目时&#xff0c;有时会遇到一些错误&#xff0c;比如"程序包com.sun.xml.internal.ws.…

go语言学而思【持续更新】

问题&#xff1a;在Go语言中nil是什么意思&#xff1f; 答&#xff1a;在Go语言中&#xff0c;nil是一个预声明的标识符&#xff0c;用于表示某些类型的零值。它可以被用作以下类型的零值&#xff1a; 指针&#xff08;Pointer&#xff09;切片&#xff08;Slice&#xff09;…

setTimeout参数解读

看到一段代码,记录一个小知识点: function timeout(ms) {return new Promise((resolve, reject) => {setTimeout(resolve, ms, done

OpenCV 4基础篇| OpenCV像素的编辑

目录 1. 前言1. 像素的访问1.1 数组索引访问1.2 img.item() 2. 像素的修改2.1 数值索引修改2.2 img.itemset() 1. 前言 像素是构成数字图像的基本单位&#xff0c;像素处理是图像处理的基本操作。 对像素的访问、修改&#xff0c;可以使用 Numpy 方法直接访问数组元素。 1. 像…

【Ubuntu】Anaconda的安装和使用

目录 1 安装 2 使用 1 安装 &#xff08;1&#xff09;下载安装包 官网地址&#xff1a;Unleash AI Innovation and Value | Anaconda 点击Free Download 按键。 然后 点击下图中的Download开始下载安装包。 &#xff08;2&#xff09;安装 在安装包路径下打开终端&#…

第三篇:CamX日志打印系统

第三篇:CamX日志打印系统 高通camx的日志主要分2大模块,UMD (user mode driver) 和KMD( kerner mode driver),也就是用户层和kernel层日志。 下面就来看下这2大块日志debug的时候该如何设置? 一、UDM日志 高通camx camera debug日志格式如下: CamX: [][] : . 例子:Ca…

时间获取、文件属性获取 2月20日学习笔记

执行两次代码&#xff0c;打印出两次执行过程中新增的文件及删除的文件 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <fcntl.h> #include <stdio.h> #include <string.h> #include <dirent.h>#def…

C++ 之LeetCode刷题记录(三十三)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;…

Nest.js权限管理系统开发(一)新建项目

新建nestjs项目 nestjs要求node版本大于等于16。我们使用nestjs cli来创建项目&#xff0c;所以执行以下命令&#xff1a; $ npm i -g nestjs/cli $ nest new nest-service --strict 现在我们已经可以进入到nest-service文件夹下&#xff0c;使用以下命令来运行项目了&#x…

渗透测试之RCE漏洞

RCE&#xff08;remote command execute&#xff09;远程命令执行。应用程序的某些功能需要调用可以执行的系统命令的函数&#xff0c;如果这些函数或者函数的参数被用户控制&#xff0c;就可能通过命令连接符将恶意的命令拼接到函数中&#xff0c;从而执行系统命令。 常见的命…

【rust】9、reqwest 调用 http

文章目录 一、client1.1 post reqwest 实现的 http server 和 client 用 https://github.com/seanmonstar/reqwest cargo add reqwest -F json cargo add tokio -F full一、client 1.1 post async fn http_post<T: Serialize>(addr: String, body: T) -> Result<…

推荐两个网络复用相关的 Go pkg: cmux/smux

只写一下如何使用&#xff0c;不对实现进行大量描述&#xff0c;两个库的代码都比较精炼&#xff0c;花一会看一下就行。 cmux 对端口进行复用&#xff0c;单端口可以建立不同协议的连接&#xff08;本质都是 TCP&#xff09;&#xff0c;如 TCP/TLS/HTTP/gRPC 或自定义协议 s…

Puppeteer 使用实战:如何将自己的 CSDN 专栏文章导出并用于 Hexo 博客(二)

文章目录 上一篇效果演示Puppeteer 修改浏览器的默认下载位置控制并发数错误重试并发控制 错误重试源码 上一篇 Puppeteer 使用实战&#xff1a;如何将自己的 CSDN 专栏文章导出并用于 Hexo 博客&#xff08;一&#xff09; 效果演示 上一篇实现了一些基本功能&#xff0c;…