Docker安装以及修改Docker的默认存储路径_部署docker环境脚本(需指定docker存储路径)-程序员宅基地

技术标签: 1024程序员节  ubuntu  docker  

1. Docker安装

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

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
或者
curl -sSL https://get.daocloud.io/docker | sh

测试:

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

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44747572/article/details/120923891

智能推荐

小白如何从零开始设计并开发一个微信小程序?-程序员宅基地

文章浏览阅读3k次,点赞45次,收藏10次。微信小程序官网:https://mp.weixin.qq.com/cgi-bin/wx微信小程序官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/微信小程序API:https://developers.weixin.qq.com/miniprogram/dev/api/微信小程序开发的简要过程(包括制作、提交审核、发布、下载小程序码等):1. 小程序原型设计 开发前,最好先做个原型,把自己的需求理顺。我.

正则表达式 匹配常用手机号 (13、15\17\18开头的十一位手机号)-程序员宅基地

文章浏览阅读1.8k次。正则表达式 匹配常用手机号 (13、15\17\18开头的十一位手机号) 原文:正则表达式 匹配常用手机号 (13、15\17\18开头的十一位手机号) ^1[3578]\d{9}$^1表示以1开头,[3578]表示第二位的数字为3578中的任意一个,\d{9..._手机号13,15,18开头11位数字正则表达式怎么书写

华为OD机试(Java)真题目录汇总(2022&2023)_华为od 任务混部 java-程序员宅基地

文章浏览阅读5.7k次,点赞13次,收藏32次。华为OD机试(Javascript)真题目录汇总。华为OD机试(Python)真题目录汇总。华为OD机试(C++)真题目录汇总。_华为od 任务混部 java

神经网络初探-程序员宅基地

文章浏览阅读117次。神经网络初探——读《深度学习的数学》总结​ 学习是一个系统通过某种过程或者方式提升自身的某个或某些性能的过程,它本身包含的是一种自动化和可控化的含义。那么如何能让不具备智能的机器去学习呢?在模拟大脑神经元的工作原理后,看来我们已经找到了通往机器学习的一种方法,它叫做神经网络。神经网络是一种看似不可理解的复杂学习方法,这里包含着许多数学的知识。在阅读《深度学习的数学》一书之后,我想,我对神经网..._神经网络初探

音频分离Spleeter的安装_2stems.tar.gz-程序员宅基地

文章浏览阅读3.5k次,点赞5次,收藏13次。音频分离Spleeter的安装1.环境依赖及建立(需要已安装anaconda)1.0 项目源地址(github地址)1.1 创建虚拟环境1.2 激活虚拟环境1.3 conda 安装spleeter1.4 下载一个示例音乐1.5 将该音乐分离为两部分1.5.1 报错:No module named numba.decorators1.5.2 解决方案:1.6 下载分类模型1.6.1报错ValueError:Can't load save_path when it is None.1.6.2 解决方案:1.6._2stems.tar.gz

让你的软件飞起来:RGB转为YUV-程序员宅基地

文章浏览阅读64次。朋友曾经给我推荐了一个有关代码优化的pdf文档《让你的软件飞起来》,看完之后,感受颇深。为了推广其,同时也为了自己加深印象,故将其总结为word文档。下面就是其的详细内容总结,希望能于己于人都有所帮助。速度取决于算法同样的事情,方法不一样,效果也不一样。比如,汽车引擎,可以让你的速度超越马车,却无法超越音速;涡轮引擎,可以轻松超越音障,却无法飞出地球;如果有火箭发动机,就可以到达火..._bao.yuv

随便推点

EM算法 - 2 - EM算法在高斯混合模型学习中的应用_em算法在高斯混合模型中的应用-程序员宅基地

文章浏览阅读8k次,点赞5次,收藏15次。声明: 1,本篇为个人对《2012.李航.统计学习方法.pdf》的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址)。 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面。 3,如果有内容错误或不_em算法在高斯混合模型中的应用

【玩转华为云】手把手教你用Modelarts基于YOLO V3算法实现物体检测-程序员宅基地

文章浏览阅读2k次。本篇推文共计2000个字,阅读时间约3分钟。华为云—华为公司倾力打造的云战略品牌,2011年成立,致力于为全球客户提供领先的公有云服务,包含弹性云服务器、云数据库、云安全等云计算服务,软..._modelarts yolo weights 文件 bbs 华为云

WiFi介绍_wifi dfs-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏13次。802.11 Wi-Fi_wifi dfs

RK3568-sata接口_rk3568 sata-程序员宅基地

文章浏览阅读249次。pcie接口sata接口pcie总线pcie总线pcie控制器sata控制器nvme设备sata设备nvme协议ahci协议m-key接口b-key接口_rk3568 sata

java实现循环队列,解决普通队列假溢出问题_但是要利用循环队列的时候,处理假溢出,要使q.front=0的时候,为什么q.rear要加-程序员宅基地

文章浏览阅读1.3k次。循环队列可以很好的解决假溢出问题,不同于普通队列,在循环队列中,需将rear与front初始值都设置为0,rear指针指向队列中最后一个元素的下一个位置,也正因如此,数组是否存满的判定条件也应做出改变,在普通队列中,front==maxSize-1,即可认为数组已满,但是在循环队列中,由于在存放完数组最后一个有效位置后可以继续像数组中的0号位置进行存储,所以判断满的条件也会发生改变,—(rear+1)%maxSize = front.可以举个例子方便理解,假设一maxSize=5的数组,那么其有0 1_但是要利用循环队列的时候,处理假溢出,要使q.front=0的时候,为什么q.rear要加

linux CentOS 7下载步骤_centos7下载-程序员宅基地

文章浏览阅读4.8k次。linux CentOS 7下载步骤_centos7下载

推荐文章

热门文章

相关标签