【Linux环境部署】Linux系统Docker安装与配置(一)

文章目录

  • Docker安装
    • 较新版本ubuntu安装docker
    • 旧版本(<=16)安装docker
      • 完全卸载
      • 离线安装
    • Nvidia Docker安装
    • Nvidia Docker镜像配置
  • Docker Compose安装&升级

Docker安装

Docker使用手册:Docker中文使用手册
Docker网卡地址修改:Docker网卡地址修改

较新版本ubuntu安装docker

更新系统软件包:

sudo apt update
sudo apt upgrade

安装所需的依赖包,以允许APT使用HTTPS:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

添加Docker官方的GPG密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加Docker存储库:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新软件包索引:

sudo apt update

安装Docker引擎:

sudo apt install docker-ce docker-ce-cli containerd.io

验证Docker是否成功安装并运行:

docker version

旧版本(<=16)安装docker

完全卸载

判断当前系统中是否已经安装过curl和docker

which docker
which curl

删除软件以及安装时自动安装的所有包

sudo apt-get autoremove docker docker-ce docker-engine  docker.io  containerd runc -y

查看docker中其他没有卸载的包

dpkg -l | grep docker

卸载没有删除的docker相关插件

sudo apt remove --purge docker-ce -y
sudo apt remove --purge docker-ce-cli -y

删除docker的相关配置&目录

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /var/run/docker*

确认docker卸载完毕

which docker

离线安装

下载地址:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/
下载containerd.io、docker-ce

wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/containerd.io_1.4.6-1_amd64.deb
wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce-cli_20.10.7~3-0~ubuntu-xenial_amd64.deb
wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_20.10.7~3-0~ubuntu-xenial_amd64.deb

按顺序安装

dpkg -i containerd.io_1.4.6-1_amd64.deb
dpkg -i docker-ce-cli_20.10.7~3-0~ubuntu-xenial_amd64.deb
dpkg -i docker-ce_20.10.7~3-0~ubuntu-xenial_amd64.deb

判断是否安装成功

docker --version
"
1、【报错docker-ce-cli依赖】16.04以上的docker-ce最新版本安装时报错:docker-ce depends on docker-ce-cli 
解决:再去其下载目录下载docker-ce-cli进行安装。
2、【报错libseccomp2依赖】Depends: libseccomp2 (>= 2.3.0) but 2.2.3-3ubuntu3 is to be installed Recommends: aufs-tools but it is not going to be installed
apt-get install -y libltdl7 libseccomp2
3、【报错libsystemd-journal0依赖】docker-ce depends on libltdl7 (>= 2.4.2); however:Package libltdl7 is not installed.docker-ce depends on libsystemd-journal0 (>= 201); however:Package libsystemd-journal0 is not installed.
apt-get install -y libltdl7 libsystemd-journal0
"# 权限问题
"
1、permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
sudo docker ps -a 命令正常,但是不加sudo就会报错
2、添加docker group
sudo groupadd docker
如果docker组已经存在,可能会出现如下提示:groupadd: group ‘docker’ already exists
3、将用户’username’加到docker group中
sudo usermod -aG docker {username}
-aG:-a在-G存在的情况下,增加次要用户组的支持,而不是修改当前用户组。
4、修改:sudo chmod 666 /var/run/docker.sock
"

Nvidia Docker安装

环境依赖

GNU/Linux x86_64 with kernel version > 3.10
Docker >= 1.12
NVIDIA GPU with Architecture > Fermi (2.1)
NVIDIA drivers ~= 361.93 (untested on older versions)

卸载已有的nvidia-docker 1.0

docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge nvidia-docker

安装version 2.0
设置稳定版的库源/GPG密钥

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 https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

更新

sudo apt-get update

安装

sudo apt-get install -y nvidia-docker2

启动

sudo systemctl restart docker

确认是否可以使用

sudo docker run --rm --gpus all nvidia/cuda:11.2.0-base-ubuntu18.04 nvidia-smi

Nvidia Docker镜像配置

进入dockerhub,在搜索框“nvidia/cuda”,第一个50M+download点进去,再点击“Tags”标签,搜索你需要安装的镜像版本,例如“11.8”(尽量保持与宿主机的版本和镜像的驱动版本一致,比如ubuntu22.04+cuda11.8),右边有对应的pull指令

docker pull nvidia/cuda:11.8.0-devel-ubuntu22.04

根据镜像创建容器

docker run -it -v ~/共享数据存储文件夹:/共享数据存储文件夹 nvidia/cuda:11.8.0-devel-ubuntu22.04

安装python环境

apt-get update
apt-get install python3
apt-get install python3-pip

安装torch

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118  # 需要换自己的参数

安装常用的库

apt-get install wget
apt-get install git
apt install vim

将安装好的容器打包成新的镜像

docker commit -m="update packages" -a="容器文件夹" 容器id xx:xxx  # 容器id需要替换成自己的

Docker Compose安装&升级

# 查看版本
docker-compose --version   
# 若显示未安装,则进行安装
apt install docker-compose

下载docker-compose V2 的可执行文件:https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64
替换原有的文件

mv docker-compose-linux-x86_64 docker-compose
chmod +x docker-compose
whereis docker-compose  # /usr/bin/docker-compose
mv /usr/bin/docker-compose /usr/bin/docker-compose.bak  # 备份一下原有的脚本
mv ./docker-compose /usr/bin/  # 将当前目录的docker-compose拷贝到/usr/bin 目录下
docker-compose --version 
  • docker compose使用说明:Docker Compose官方使用手册

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

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

相关文章

【数据库编程-SQLite3(三)】Ubuntu下sqlite3的使用

学习分享 1、安装sqlite3命令2、sqlite3点命令3、在Linux命令行下&#xff0c;启动sqlite33.1、编写sql脚本3.2、脚本编写--DDL3.3、进入xxx.db数据库&#xff0c;读取脚本。3.4、再次查看数据库中的表。证明表创建成功。3.5、查看数据表中用户内容3.6、查看表结构3.7、在数据库…

k8s业务上线流程

k8s业务上线流程 搭建好k8s集群之后&#xff0c;需要在集群内部运行一些业务程序&#xff0c;并可以访问&#xff0c;这样的集群才有意义。之前只是自己学习如何搭建集群&#xff0c;如何创建资源对象&#xff0c;更多的是在学习和练习层面&#xff0c;并没有实际用处&#xf…

SpringBoot3使用Swagger

SpringBoot3使用Swagger 项目中的后端接口进行简单的前端展示一、依赖引入二、快速启动1.在application.yml中配置2.或者properties文件,则配置3.启动项目访问swagger 项目中的后端接口进行简单的前端展示 Swagger是一个用于设计、构建、文档化和使用RESTful Web服务的开源工具…

TWM论文阅读笔记

这是ICLR2023的一篇world model论文&#xff0c;用transformer来做世界模型的sequence prediction。文章贡献是transformer-based world model&#xff08;不同于以往的如transdreamer的world model&#xff0c;本文的transformer-based world model在inference 的时候可以丢掉…

Xcode编译报错 #error unsupported Swift architecture

1. 问题描述&#xff1a; Xcode15 引入某些三方库时&#xff0c;真机跑起来没问题&#xff1b;但模拟器build时报错卡在 #error unsupported Swift architecture&#xff0c;注释掉代码也不行&#xff1b; 2. 解决办法&#xff1a; 得找到Rosetta类型模拟器才能run起来&…

信号处理中的梯型权重操作(Tapering)

目录 1. 引言2. 一个Tapering操作的例子3. Tapering操作的简单实现延伸阅读1. 引言 Tapering 操作是对信号数据在水平和垂直方向上应用梯形权重,这个操作可以减弱数据边界效应,从而在进行傅里叶变换时减少伪影和边缘效应。本文将通过一个简单的例子来展示 Tapering 操作的具…

ARM应用处理器系列

ARM 应用处理器系列是指基于 ARM 架构设计的用于各种应用场景的处理器。这些处理器被广泛应用于移动设备、嵌入式系统、服务器、物联网设备等领域。以下是一些主要的 ARM 应用处理器系列&#xff1a; 1. Cortex-A 系列 Cortex-A 系列处理器专为高性能和低功耗应用设计&#xf…

【C/C++】工业级别的日志文件轮转策略原理

日志文件轮转&#xff08;Log Rotation&#xff09;是一种日志管理策略&#xff0c;用于自动管理日志文件的大小和数量。随着应用程序运行时间的增加&#xff0c;日志文件可能会变得非常大&#xff0c;这不仅会占用大量的磁盘空间&#xff0c;还可能影响应用程序的性能。日志文…

函数模板的具体化

函数模板优点是通用性&#xff0c;可以解决某个方面的普遍性问题&#xff0c;但是这个世界上的事情不是绝对的&#xff0c;有普遍的&#xff0c;就有绝对的。举个栗子&#xff1a; #include <iostream> using namespace std; template <typename T> void Swap(T &…

redis持久化方式—AOF

redis为什么需要持久化 redis是内存数据库&#xff0c;redis所有的数据都保存在内存中 如果此时pc关机或重启&#xff0c;那么内存中的用户数据岂不是丢失了&#xff1f;redis这么不安全吗&#xff1f; 作为数据库&#xff0c;保证数据的安全&#xff0c;持久是基本需求&…

SQL笔记——表的操作、数据修改、列的属性和查询操作

表的操作 在之前应该有一个数据库 先创建一个 user 库,然后可以查看、修改、删除 create databases user;//创建 show databases; //展示 alter databases user //修改 修改的内容; drop databases user1;//删除 或者是 drop databases if exists user1;添加数据之前肯定要知…

java基础-IDEA环境基础用法自动导包等设置

IDEA&#xff1a; 是用于Java语言开发的集成环境&#xff0c;它是业界公认的目前用于Java程序开发最好的工具。 把代码编写&#xff0c;编译&#xff0c;执行&#xff0c;调试等多种功能综合到一起的开发工具。 IDEA项目结构&#xff1a; 多级包用 . 链接。 快速生成 快…

STM32的通用定时器中断编程

如果遇到需要单片机产生严格时序的场景&#xff08;比如DAC输出特定模拟信号&#xff0c;GPIO口控制模拟开关&#xff09;&#xff0c;延时函数可能就无法胜任了。最近在工作时公司上级教会了我使用“门票”思维&#xff08;中断标志位)编写单片机裸机程序&#xff0c;今天写一…

JAVA 替代SWITCH 枚举值 CASE 的 策略模式

看看使用策略模式之前的代码&#xff1a; // switch (type) { // case 0: // terme.setKhdmlist(dmList); // List<Kehu> list getSdList$api(terme); // for (Kehu kehu : list) { // …

论文学习_Large Language Models Based Fuzzing Techniques: A Survey

论文名称发表时间发表期刊期刊等级研究单位 Large Language Models Based Fuzzing Techniques: A Survey 2024年arXiv- 悉尼大学 0.摘要 研究背景在软件发挥举足轻重作用的现代社会&#xff0c;软件安全和漏洞分析对软件开发至关重要&#xff0c;模糊测试作为一种高效的软件…

前端学习-day10

文章目录 01-体验平面转换02-平移效果03-绝对定位元素居中04-案例-双开门06-转换旋转中心点07-案例-时钟-转换原点08-平面转换-多重转换09-缩放效果10-案例-按钮缩放11-倾斜效果12-渐变-线性13-案例-产品展示14-渐变-径向15-综合案例-喜马拉雅 01-体验平面转换 <!DOCTYPE h…

2024.6.17总结1113

今天早上进行了毕设答辩&#xff0c;无论是打印报告还是答辩&#xff0c;整个过程都挺顺利的。 其实&#xff0c;昨天还是挺慌的&#xff0c;就觉得自己的论文还存在许多问题&#xff0c;但是&#xff0c;早上看到那么多人的论文都存在这样那样的问题的时候&#xff0c;我反而…

Spring框架的原理及应用详解(七)

本系列文章简介&#xff1a; 在当今的软件开发世界中&#xff0c;随着应用复杂性的不断增加和技术的快速发展&#xff0c;传统的编程方式已经难以满足快速迭代、高可扩展性和易于维护的需求。为此&#xff0c;开发者们一直在寻求更加高效、灵活且易于管理的开发框架&#xff0c…

C#(C Sharp)学习笔记_多态【十九】

前言 个人觉得多态在面向对象编程中还比较重要的&#xff0c;而且不容易理解。也是学了一个下午&#xff0c;才把笔记写得相对比较完善&#xff0c;但仍欠缺一些内容。慢慢来吧…… 什么是多态&#xff1f; 基本概念 在编程语言和类型论中&#xff0c;多态&#xff08;Poly…

C# + easyui 写的一个web项目

用C# easyui 来开发&#xff0c;其实就是为了开发速度&#xff0c;用easyui可以一天写很多页面&#xff0c;比一些低代码平台还快。 登陆页面 主界面 记录数统计 家庭信息采集表 新建家庭 家庭成员 低保、五保人员帮扶情况登记表 低保、五保人员帮扶情况登记表的新增和编辑 治…