Docker安装以及修改Docker的默认存储路径

2023-05-16

文章目录

  • 1. Docker安装
    • 1.1 使用官方安装脚本自动安装
    • 1.2 建立 docker 用户组
    • 1.3 卸载 docker
  • 2. 修改Docker的默认存储路径

1. Docker安装

1.1 使用官方安装脚本自动安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
或者
curl -sSL https://get.daocloud.io/docker | sh
  • 其他安装方法:
    https://www.runoob.com/docker/ubuntu-docker-install.html

测试:

sudo docker run hello-world

出现问题:

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.

问题分析: 默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
1、创建docker组(安装docker时会自动创建,一般无需重新创建)

$ sudo groupadd docker

2、将当前用户加入到docker用户组

$ sudo gpasswd -a  ${USER} docker

3 、重新启动docker

 sudo service docker restart
 #或者执行以下命令,无须重新登录
 newgrp docker

4、测试docker命令是否可以使用sudo正常使用

docker ps

测试:

$ docker run --rm hello-world

结果:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

Hello from Docker!This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps: 
1. The Docker client contacted the Docker daemon. 
2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 
3. The Docker daemon created a new container from that image which runs the    executable that produces the output you are currently reading. 
4. The Docker daemon streamed that output to the Docker client, which sent it    to your terminal.

To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/
For more examples and ideas, visit: https://docs.docker.com/get-started/

1.2 建立 docker 用户组

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

1、创建docker组(安装docker时会自动创建,一般无需重新创建)

$ sudo groupadd docker

2、将当前用户加入到docker用户组

$ sudo gpasswd -a  ${USER} docker

3 、重新启动docker

 sudo service docker restart
 #或者执行以下命令,无须重新登录
 newgrp docker

4、测试docker命令是否可以使用sudo正常使用

docker ps

测试:

$ docker run --rm hello-world

结果:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

Hello from Docker!This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps: 
1. The Docker client contacted the Docker daemon. 
2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 
3. The Docker daemon created a new container from that image which runs the    executable that produces the output you are currently reading. 
4. The Docker daemon streamed that output to the Docker client, which sent it    to your terminal.

To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/
For more examples and ideas, visit: https://docs.docker.com/get-started/

1.3 卸载 docker

删除安装包:

sudo apt-get purge docker-ce

删除镜像、容器、配置文件等内容:

sudo rm -rf /var/lib/docker
  • 其他卸载docker的方法:
    https://blog.csdn.net/chuxingbubian/article/details/105484778?

2. 修改Docker的默认存储路径

  • 1. 停止docker服务:

    sudo service docker stop
    
  • 2. 修改docker.service配置文件,使用–graph 参数指定新的目录

     $ sudo vi /lib/systemd/system/docker.service
    

    在打开的文本里,找到ExecStart进行相应的修改:

    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph="/home/xiaoyuanzi/python/Docker" --storage-driver=overlay
    ExecReload=/bin/kill -s HUP $MAINPID
    
  • 3. 重新加载配置文件

    $ sudo systemctl daemon-reload
    
  • 4. 启动docker,查看docker状态

    $ sudo systemctl start docker
    $ sudo systemctl enable docker
    $ sudo systemctl status docker
    
  • 5. 查看默认路径是否修改成功

    $ sudo docker info
    或者直接查看docker路径
    sudo docker info | grep "Docker Root Dir"
    

    结果:
    在这里插入图片描述

  • 其他方法: 未验证是否成功
    https://blog.51cto.com/forangela/1949947
    https://zhuanlan.zhihu.com/p/95533274
    https://blog.csdn.net/BigData_Mining/article/details/104921479

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker安装以及修改Docker的默认存储路径 的相关文章

  • C语言从入门到精通第14天(局部变量和全局变量)

    局部变量和全局变量 局部变量全局变量 局部变量 简单来说 xff0c 在C语言中的局部变量就是定义在 中的变量 xff0c 他的作用域也在 内 xff0c 他的生命周期随着 结束而结束 例如 xff1a span class token k
  • C语言从入门到精通第15天(C语言预处理)

    C语言预处理 预处理概述宏定义条件编译 预处理概述 在前面我们已经对C语言的基础语法知识有所了解了 xff0c 每次进行程序的编写之前 xff0c 我们会使用 include命令去导入我们的库函数 xff0c 而这种以 号开头的命令称为预处
  • C语言从入门到精通第16天(指针的定义与基本使用)

    指针的定义与基本使用 什么是指针 xff1f 指针变量的定义指针变量的基本使用 什么是指针 xff1f 在使用指针之前我们需要对指针进行初步的了解 xff0c 首先我们要知道什么是指针 xff1f 通过前面的学习我们已经知道了内存的存储方式
  • 作为一个大学生你应该知道的事情

    作为一个大学生你应该知道的事情 大学生毕业去向 今天 xff0c 我们不写技术 xff0c 来谈一谈大学生的毕业现状 xff1a 以下内容为本人的一些观点和看法 xff0c 仅限于沟通交流 大学生毕业去向 大学生的毕业去向大致可以分为 xf
  • C语言从入门到精通第17天(指针和数组联用)

    指针和数组联用 不同类型指针变量之间的区别数组的指针指针数组 不同类型指针变量之间的区别 在了解数组和指针联用之前 xff0c 我们先对指针变量进行补充 我们对比一下int p1和char p2的区别 xff1f 相同点 xff1a 都是指
  • 使用 Keil uVision 和 STM32CubeMX 对 STM32F103C8 进行编程

    采用ARM Cortex M架构的STM32微控制器因其特性 成本和性能而在许多应用中得到广泛应用 在之前的教程中 xff0c 我们已经使用Arduino IDE编程了STM32F103C8 使用Arduino IDE编程STM32很简单
  • 适用于 STM32F103C8 的 FreeRTOS,STM32的多任务同时进行

    概述 xff1a 适用于 STM32F103C8 的 FreeRTOS STM32F103C 是一款ARM Cortex M3 处理器 我们可以在 Arduino IDE 中使用适用于 STM32F103C8 的 FreeRTOS 我们也可
  • PLC为什么会被上位机取代

    随着我们进入高速发展的轨道 xff0c 许多工厂都已经完成了自动化流水线生产的打造 我们可以看到很多大厂已经搭建了智能生产线 所以越来越多的plc工程师开始感觉到 xff0c 只会传统的plc控制 xff0c 已经无法满足公司的企业发展业务
  • 【Vue2】生命周期——钩子函数

    钩子函数 xff1a 在一个Vue实例从创建到销毁的过程自动执行的函数 1 分析生命周期 1 xff09 初始化阶段 xff1a beforeCreate xff08 xff09 生命周期中第一个函数 xff0c 在该函数执行时Vue实例仅
  • 计算机考研全年规划

    此文转载的 xff0c 作为参考 文章目录 一 关于考研常识二 择校择专业 xff08 一 xff09 为什么要考研 xff08 二 xff09 怎么样才能考上研究生 xff08 三 xff09 如何择校选专业1 学硕和专硕该如何选择 xf
  • c#串口编程(傻瓜教程,手把手教你学会)

    在单片机项目开发中 xff0c 上位机也是一个很重要的部分 xff0c 主要用于数据显示 xff08 波形 温度等 xff09 用户控制 xff08 LED xff0c 继电器等 xff09 xff0c 下位机 xff08 单片机 xff0
  • CMakeLists.txt编写规则

    一 基本语法 语法格式 指令 参数1 参数2 1 参数间用空格或分号隔开 2 指令大小写无关 参数和变量大小写相关 3 变量用 方式取值 但在if语句中直接用变量名 二 重要指令 1 cmake minimum required 指定CMa
  • [stm32] Start Tour-一些元件的连接

    如果觉得有帮助的话就点个赞吧 持续更新 目录 一 蜂鸣器 注意点 xff1a 二 独立按键 一 蜂鸣器 根据原理图连的实物图如右 xff1a 注意点 xff1a 1 xff09 蜂鸣器分正负极 2 xff09 VCC和GND是32板的总电源
  • ROS中Gazebo无响应解决办法

    标题ROS中Gazebo无响应解决办法 在终端输入gazebo没有反映 xff0c 进行下面两句操作 首先输入下面的代码 gazebo verbose 观察到报错显示原因为有另一个gazebo进程于是杀死这个进程则问题解决代码如下 xff1
  • 别害羞,开源社区真的很需要你,教你如何参与开源社区~

    前言 相信各位开发者多多少少会在实际开发的过程中会使用一些开源的技术 xff0c 例如前端的 vue react 以及大量的第三方库如 echart xff0c color js day js 等等 xff0c 后端就更多了 xff0c 从
  • VBox 快照备份虚拟机

    目录 虚拟机快照概念 什么是虚拟机快照 VBox 快照备份恢复 FreeBSD 系统 拍摄 Snapshots 快照 拍摄快照示例 恢复快照 虚拟机快照概念 什么是虚拟机快照 简单来说 xff0c 就是将你当前状态的虚拟机复制保存一份镜像
  • [Linux 调试 Android]-Linux 命令行调试 Android 设备

    目录 Slackware 15 0 下调试安卓 4 4 2 系统环境配置 获取 linux 版本的 adb 程序 将 ADB 程序安装到 Linux 系统上 配置 adb 环境变量 在 Linux 系统上 adb 调试安卓系统 Slackw
  • docker 容器如何查看正在运行容器的端口映射

    1 查看docker容器的版本 root 64 opt docker version Docker version 19 03 5 build 633a0ea 2 查看正在运行的容器 root 64 opt docker ps CONTAI
  • docker退出关闭容器

    可以使用 docker stop 来终止一个运行中的容器 此外 xff0c 当Docker容器中指定的应用终结时 xff0c 容器也自动终止 例如对于上一章节中只启动了一个终端的容器 xff0c 用户通过 exit 命令或 Ctrl 43
  • STM32收入高也好找工作,所以我学嵌入式linux终究是错付了吗

    STM32收入高也好找工作 xff0c 所以我学嵌入式linux终究是错付了吗 经常有同学纠结问我 xff1a 我到底是学STM32还是学嵌入式linux 这个问题很多人都会有自己的看法 xff0c 今天我试着从多个角度 xff0c 把了解

随机推荐

  • Java面试基础篇

    Java面试基础篇 基础总结 博客链接导航 Java语言基础常识 https blog csdn net article details 88531257 J2EE基础知识 https blog csdn net article detai
  • 项目实战-外卖自提柜 3. FreeRTOS主要API的应用

    项目实战 外卖自提柜 1 项目介绍 协议制定 项目实战 外卖自提柜 2 CubeMX 43 FreeRTOS入门 项目实战 外卖自提柜 3 FreeRTOS主要API的应用 项目实战 外卖自提柜 4 FreeRTOS 堆栈分配 调试技巧 项
  • [Spring] IntelliJ IDEA 新建工程时没有Spring选项的解决方法

    Spring IntelliJ IDEA 新建工程时没有Spring选项的解决方法 专业版 xff08 ultimate xff09 社区版 xff08 community xff09 刚开始学习Java Spring框架 xff0c 也是
  • MySQL下载与安装教程(超详细)

    一 MySQL下载 下载地址 xff1a https dev mysql com downloads mysql 根据自己需要下载对应的版本 xff0c 我下载的是mysql 5 7 31 二 MySQL安装教程 1 解压安装包 下载后得到
  • docker 开发编译环境搭建

    参与docker开源社区 xff0c 成为docker项目的contributor xff0c 首先要搭建docker的开发编译环境 xff0c 下面是docker官网介绍的编译环境的搭建 xff0c 这里做个笔记 docker的编译环境准
  • qt基础入门教程

    1 t的介绍 优点 成功案例 5 8 0 Qt是一个跨平台的C 43 43 图形用户界面应用程序框架 它为应用程序开发者提供建立艺术级图形界面所需的所有功能 爸是完全面向对象的 xff0c 很容易扩展 xff0c 并且允许真正的组件编程 推
  • Java开发自学教程!japonensisjava东莞

    三大内容 xff1a Java并发编程Java高并发编程高并发系统设计 Java并发编程 1 概览 2 进程与线程 3 Java 线程 4 共享模型之管程 5 共享模型之内存 6 共享模型之无锁 7 共享模型之不可变 8 共享模型之工具 并
  • MySQL 5.7 安装教程(全步骤、保姆级教程)

    2022年05月30日更新 本文介绍的是只安装MySQL数据库的过程 xff0c 并不包含各种其他附加工具 安装完成之后通常使用Navicat或SQLyog进行可视化操作 清华的镜像网站只保存最新的几个MySQL版本 xff0c 所以直链可
  • 手把手教你如何Vue项目打包dist文件并Tomcat发布【超级详细】

    作者 xff1a bug菌 博客 xff1a CSDN 掘金等 公众号 xff1a 猿圈奇妙屋 特别声明 xff1a 原创不易 xff0c 转载请附上原文出处链接和本文声明 xff0c 谢谢配合 版权声明 xff1a 文章里可能部分文字或者
  • node 14.19.0 版本成功解决:安装 node-sass 和 sass-loader 的过程及各 node 版本对应的 node-sass 版本号

    1 node 版本 node sass 版本及 sass loader 版本查看 xff1a 其一 我的 node 版本查看 xff1a 在命令行输入查询命令 xff1a node v 我的 node 版本为 xff1a v14 19 0
  • Shiro反序列化漏洞【详细解析】

    Shiro是什么东西 Shiro 是 Java 的一个安全框架 xff0c 执行身份验证 授权 密码 会话管理shiro默认使用了CookieRememberMeManager xff0c 其处理cookie的流程是 xff1a 得到rem
  • Go语言面试题

    1 Go有哪些数据类型 f 2 方法与函数的区别 在Go语言中 xff0c 函数和方法不太一样 xff0c 有明确的概念区分 xff1b 函数是指不属于任何结构体 类型的方法 xff0c 也就是说函数是没有接收者的 xff1b 而方法是有接
  • 项目实战-外卖自提柜 4. FreeRTOS 堆栈分配、调试技巧

    项目实战 外卖自提柜 1 项目介绍 协议制定 项目实战 外卖自提柜 2 CubeMX 43 FreeRTOS入门 项目实战 外卖自提柜 3 FreeRTOS主要API的应用 项目实战 外卖自提柜 4 FreeRTOS 堆栈分配 调试技巧 项
  • ubuntu中关于通过编辑.bashrc文件修改提示符的简单过程

    这两天在看关于shell变量的一些内容 xff0c 突然有个想法 xff0c 就是修改下自己终端的提示符 记得先前的提示符应该是 xff1a wjl 64 wjl desktop 使用wjl账户在 home wjl目录下 root 64 w
  • MySQL高级篇知识点——索引优化与查询优化

    目录 1 数据准备 1 1 建库建表1 2 创建相关函数1 3 创建存储过程1 4 调用存储过程1 5 删除某表上的索引 2 索引失效案例 2 1 全值匹配2 2 最佳左前缀匹配原则2 3 主键插入顺序2 4 计算 函数 类型转换 xff0
  • Vue路由&&无痕浏览 - nodeJs环境搭建

    目录 一 Vue路由 1 1 路由的使用步骤 1 2 无痕浏览 二 nodeJs环境搭建 2 1 Node js是什么 2 2 配置NodeJS环境 2 3 下载github的Vue项目 一 Vue路由 1 1 路由的使用步骤
  • Docker的数据管理和端口映射实现容器访问

    Docker的数据管理 存储资源类型 在使用Docker的过程中 xff0c 需要查看容器内应用产生的数据 xff0c 或者需要将容器内数据进行备份 xff0c 甚至需要多个容器之间进行数据共享时 xff0c 势必会设计到容器的数据管理 x
  • 爬取CSDN专栏文章到本地,并保存为html、pdf、md格式

    前言 突然想爬取CSDN的专栏文章到本地保存了 xff0c 为了影响小一点 xff0c 特地挑选CSDN的首页进行展示 综合资讯这一测试点是什么找到的呢 xff1f 就是点击下图的热点文章 xff0c 然后跳转到具体文章 xff0c 然后再
  • Docker-desktop(Docker桌面版)——入门篇

    前言 本章内容主要涉及内容 xff1a 在Windows10系统下进行安装和简单使用 Docker desktop Docker桌面版 如果你是docker初学者 xff0c 或者压根就不知道docker是什么 xff0c 那你一定要先知道
  • Docker安装以及修改Docker的默认存储路径

    文章目录 1 Docker安装 1 1 使用官方安装脚本自动安装1 2 建立 docker 用户组1 3 卸载 docker 2 修改Docker的默认存储路径 1 Docker安装 1 1 使用官方安装脚本自动安装 curl fsSL h