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

智能推荐

linux加载虚拟sriov网卡,网卡直通SR-IOV技术-程序员宅基地

文章浏览阅读1.5k次。相关技术IO虚拟化简介全虚拟化通过VMM来模拟IO设备实现,VMM截获GuestOS的IO请求,通过软件模拟真实的硬件。VMM必须处理所有虚机的IO请求,然后将所有的IO情况序列化为可以被底层硬件处理的单一IO流。好处是GuestOS不需要考虑硬件设备的情况。问题是效率相对较低。例如 qemu。一个完整的数据包从虚拟机到物理机的路径是:虚拟机--QEMU虚拟网卡--虚拟化层--内核网桥--物理网卡..._qemu sr-iov

查找算法练习题_关于顺序查找算法 在下面的线性表中 ( 15, 24, 32, 47, 50, 58, 62, 79-程序员宅基地

文章浏览阅读1.4w次,点赞2次,收藏10次。1、在对有二十个数据有序表作二分查找时有___________个结点的查找长度是4.2、用折半查找法的查找速度比用顺序查找法的查找速度_________. A 必然慢 B必然快 C速度相等 D 快慢不定3、写出从循环单链表中查找出最大值的算法.4、写出从循环单链表中查找出最小值的算法 .5、适合折半查找的表的存贮方式及元素排列要求为( ) A、 链..._关于顺序查找算法 在下面的线性表中 ( 15, 24, 32, 47, 50, 58, 62, 79, 83, 96 )

DAPP开发中Web3唤醒MetaMask签名数据+Java校验签名实现去中心化和中心化用户数据的鉴权_web3.eth.personal.sign-程序员宅基地

文章浏览阅读2.5w次,点赞6次,收藏17次。使用场景大多数用在DAPP中调用中心化数据或者操作某些中心化功能的时候通过DAPP调用MetaMask钱包对数据进行签名传递给后台,后台验证签名数据是否是否当前用户钱包地址签名的数据实现鉴权。一、DAPP端用Web3签名数据注:不同的web3版本签名代码有点差异1、0.26版本签名web3.personal.sign//参数1:要签名的数据//参数2:签名的钱包地址web3.personal.sign(web3.fromUtf8("Hello Dapp"), "0x4..._web3.eth.personal.sign

Unsupported JPEG process: SOF type 0xc3之jai_imageio-1_0_01-lib-windows-i586-jre.exe安装踩过的坑_java unsupported jpeg process:-程序员宅基地

文章浏览阅读852次。开门见山。本人这里用的是jai_imageio-1_0_01-lib-windows-i586-jre.exe。(他还有另外的一个版本jai_imageio-1_0_01-lib-windows-i586-jdk.exe)。这里正式开始,本人测试环境:Win10 64位JDK是用jdk1.8.0_191 32位。直接双击jai_imageio-1_0_01-lib-windows-i586-jre.exe进行安装,如果之前已经装个一次,则第二次就会是卸载过程,如果没有装过,则是安装过程。以下过程_java unsupported jpeg process:

EMC原理-传导(共模、差模)与辐射(近场、远场)详解_电路直角emc-程序员宅基地

文章浏览阅读1.8k次,点赞3次,收藏26次。EMC原理-传导(共模、差模)与辐射(近场、远场)详解_电路直角emc

TomoSAR仿真_压缩感知层析sar matlab-程序员宅基地

文章浏览阅读286次。基于压缩感知的TomoSAR原理仿真_压缩感知层析sar matlab

随便推点

Python面试中,羞于谈钱的你:17k就17k吧,事后你又后悔了_hr报的薪资是17k太低了-程序员宅基地

文章浏览阅读389次。毕业3年,能力相仿、技术领域一样的2个程序员,准备跳槽到同一家公司,最后,一个谈下了20k,一个拿着17k。为什么薪资相差3k?因为:“谈判”。有程序员会来问:Python面试时,明明给不到,还一直问我的期望薪资,有什么用???接了offer以后,对薪资还是有些不满意,该怎么和hr说啊?挂出的岗位薪资是15-20k,提17k有问题吗???期望薪资 vs 岗位成本怎么理解15K~20..._hr报的薪资是17k太低了

LCTF-2016-PWN100-程序员宅基地

文章浏览阅读215次。栈溢出。可以通过libcdb.com获取libc.so.6和对应的libc关键函数偏移。或者使用libc-database。#!/usr/bin/env pythonfrom pwn import *DEBUG = 1if DEBUG: context.log_level = 'debug' p = process('./pwn1003s4d...

【老生谈算法】matlab实现瑞利衰落信道仿真-程序员宅基地

文章浏览阅读452次。由于多径和移动台运动等影响因素,使得移动信道对传输信号在时间、频率和角度上造成了色散,如时间色散、频率色散、角度色散等等,因此多径信道的特性对通信质量有着至关重要的影响,而多径信道的包络统计特性成为我们研究的焦点。根据不同无线环境,接收信号包络一般服从几种典型分布,如瑞利分布、莱斯分布和Nakagami-m分布.在本文中,专门针对服从瑞利分布的多径信道进行模拟仿真,进一步加深对多径信道特性的了解.通常在离基站较远、反射物较多的地区,发射机和接收机之间没有直射波路径,存在大量反射波;表1 多径延时参数。

前端高频面试题及答案整理(二)_监测数组的时候可能触发多次 get/set,那么如何防止触发多次呢?-程序员宅基地

文章浏览阅读2.1k次,点赞3次,收藏5次。防抖():触发高频事件 N 秒后只会执行一次,如果 N 秒内事件再次触发,则会重新计时。类似王者荣耀的回城功能,你反复触发回城功能,那么只认最后一次,从最后一次触发开始计时。核心思想:每次事件触发就清除原来的定时器,建立新的定时器。使用apply或call调用传入的函数。函数内部支持使用 this 和 event 对象;应用:防抖常应用于用户进行搜索输入节约请求资源,触发事件时进行防抖只触发一次。实现:并发与并行的区别?并发是宏观概念,我分别有任务 A 和任务 B,在一段时间内通过任务间的切换完成了这_监测数组的时候可能触发多次 get/set,那么如何防止触发多次呢?

Jupyter Notebook好用在哪?-程序员宅基地

文章浏览阅读212次。Jupyter Notebook 是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码、数学方程、可视化和 Markdown,其用途包括数据清理和转换、数值模拟、统计建模、机器学习等等。目前,数据挖掘领域中最热门的比赛 Kaggle 里的资料都是 Jupyter 格式。对于机器学习新手来说,学会使用 Jupyter Notebook 非常重要。下面这篇 Jupyter Notebo..._jupyter notebook的便捷之处

【ELM回归预测】基于秃鹰优化极限学习机BES-ELM实现数据回归预测附matlab代码_bes优化elm回归预测隐含层节点数-程序员宅基地

文章浏览阅读41次。在机器学习领域,回归预测是一项重要的任务,它可以帮助我们根据已有的数据来预测未来的趋势或结果。而极限学习机(ELM)作为一种快速且有效的机器学习算法,在回归预测中得到了广泛的应用。本文将介绍一种基于秃鹰优化的极限学习机(BES-ELM)算法,用于实现数据回归预测。首先,让我们了解一下极限学习机(ELM)算法的基本原理。ELM算法是一种单隐层前馈神经网络,其主要思想是随机初始化输入层到隐层的连接权重和偏置,然后通过求解线性方程组的方式得到输出层到隐层的权重。_bes优化elm回归预测隐含层节点数

推荐文章

热门文章

相关标签