笔者近期在服务器上搭建docker环境,可由于笔者是普通用户,在安装的时候就跳了很多坑,现在记录一下。

一、docker权限问题

据官方解释,搭建docker环境必须使用root权限,或者sudo装,但一般服务器是一个机构或者多个人共同使用的,只有管理员才能拿到root权限,所以建议需要使用docker的普通用户要向管理员申请,在他搭完服务器后再搭一个docker环境,并把你当前这个普通用户名加入到docker组内,这样你才能使用。

命令行

sudo usermod -aG docker <your_username>

然后退出重新登陆。

二、搭建docker时不能pull or push 任何镜像

可能有两种原因

1,没有登陆docker hub

命令行:

docker login

输入用户名和密码以及邮箱就可以了(没有用户帐号的需先访问docker hub注册一个账户)

2,网络无法访问docker hub

由于有时网络状态不好(国内网络大家都懂的),我们无法访问docker hub仓库,建议添加镜像源,很多博客推荐daoyun或者aliyun,我都试过,有时候还是不行,亲测了一个清华镜像源有效

安装docker过程:

1,安装依赖包

 yum install -y yum-utils device-mapper-persistent-data lvm2

2,下载docker源(使用清华镜像源)

yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

3,更新软件缓存

yum makecache fast

4,安装docker-ce

yum install docker-ce -y

5,启动docker

systemctl start docker.servic

6,(可选)设置成开机自启

chkconfig docker on

7,查看docker版本信息

docker info

8,如果要卸载

yum remove docker-ce

(删除所有镜像和容器)

rm -rf /var/lib/docker

三、更改docker镜像默认存储路径

默认情况下,docker镜像的默认存储路径是/var/lib/docker,这相当于直接挂载系统目录下,而一般在搭系统时,这个区都不会太大,所以如果长期使用docker开发应用,就需要把默认的路径更改到/home路径下(这个区一般会分得比较多)

命令行:

vi /usr/lib/systemd/system/docker.service

在文本内容ExecStart=/usr/bin/dockerd 后面添加如下内容:

--graph  <your path>使得变成:

ExecStart=/usr/bin/dockerd \

--graph  <your path>

然后重新加载配置文件

systemctl daemon-reload

最后重启即可

systemctl restart docker

注:更改过后,之后卸载docker并删除所有镜像和容器的目录,就要rm -rf <your path>

四、测试pull or push 一个镜像

有可能会出现TSL,重启一下docker服务即可。

若出现error,建议去看下docker-ce.repo,

vi /etc/yum.d.repos/docker-ce.repo

查看所有的路径是否已经全部更改为我们之前设定的清华docker镜像源,如果没有,那就需要自己手动更改,附上清华镜像源网址https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/,然后对照内容更改所有的url(注意:可以disable edge 和test这两个版本,就不需要更改这两个版本的url)

以上就是我此次搭建docker环境遇到的坑,希望能对你有所帮助,如果喜欢的话就留个爪印吧!

centos7下更改docker镜像和容器的默认路径的更多相关文章

  1. 修改docker镜像和容器的存放路径

    默认情况下,镜像和容器存放的路径是/var/lib/docker. 要修改这个设置很简单,把指定的目录软链到这个目录,或者将一个单独的分区挂载到这个目录,或者直接修改docker启动参数. 查看使用帮 ...

  2. centos7下安装docker(19容器架构)

    What,Why,How What:什么是容器? 说起容器大家想到的是什么?      集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成co ...

  3. centos7下安装docker(11容器操作总结)

    这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资 ...

  4. centos7下安装docker(10容器底层--cgroup和namespace)

    cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup ...

  5. centos7下安装docker(9容器对资源的使用限制-内存)

                  一个docker Host上面会运行若干容器,每个容器都需要CPU,内存和IO资源.容器提供了控制分配多少CPU,内存给每个容器的机制,避免摸个容器因占用太多资源而影响其他 ...

  6. Linux下正确修改Docker镜像和容器的默认存储位置,亲测有效

    我们通过 yum 的方式安装完Docker环境后,它默认的存储位置是 /var/lib/docker,默认的 pid 存放位置是 /var/run/docker.pid. 如果仅仅是做测试,我们可能没 ...

  7. centos 如何修改docker镜像和容器的默认存放路径

    原因:通过df -h查看磁盘利用的时候,目前挂载的太小了,所以尝试挂载到其他地方 1 先看看默认存放的路径在哪儿 方法1:docker info 方法2:sudo docker info | grep ...

  8. centos7下安装docker与镜像加速

    1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...

  9. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

随机推荐

  1. strcpy、strncpy与memcpy的区别与使用方法

    strcpy.strncpy.memcpy这三个C语言函数我们在主机代码编写中会很频繁的使用到,但是三个函数的区别.使用时该注意什么还是有必要说下的. 本文参考<C 标准库>编写. 一.函 ...

  2. 手把手教你在Windows环境下升级R

    在Windows环境下,我们可以使用installr包自动将R升级到最新版本.并且可以安装软件.下面主要演示如何在Windows环境下升级R,并将旧版本安装的R包复制到更新版本的R. 1.加载inst ...

  3. php替换文件指定行的内容

    //第一种 利用file 函数 读取文件,每一行都是一个数组元素 $arr = file($file); $arr[$line] = "hello"; file_put_conte ...

  4. R语言︱集合运算——小而美法则

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 集合运算的一般规则如下:    union(x ...

  5. MPEG2_TS流基本概念和数据结构

    时对应network_PID,program_number等于其它值时对应program_map_PID. (3)PMT   PMT数据结构如下: TS_program_map_section(){ ...

  6. Caused by: java.lang.ClassNotFoundException: org.jboss.logging.BasicLogger

    1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  7. CF AIM Tech Round 3 (Div. 2) D - Recover the String

    模拟 首先可以求出 0 和 1 的个数 之后按照01 10 的个数贪心安排 细节太多 错的都要哭了 #include<bits/stdc++.h> using namespace std; ...

  8. 【BZOJ2946】公共串(后缀数组)

    [BZOJ2946]公共串(后缀数组) 题面 权限题... 只有CJOJ题面啦 Description 给出几个由小写字母构成的单词,求它们最长的公共子串的长度. 任务: 读入单词,计算最长公共子串的 ...

  9. golang 详解defer

    什么是defer defer用来声明一个延迟函数,把这个函数放入到一个调用链表上, 当外部的包含方法return之前,返回参数到调用方法之前调用,也可以说是运行到最外层方法体的"}" ...

  10. 使用zxing生成解析二维码

    1. 前言 随着移动互联网的发展,我们经常在火车票.汽车票.快餐店.电影院.团购网站以及移动支付等各个场景下见到二维码的应用,可见二维码以经渗透到人们生活的各个方面.条码.二维码以及RFID被人们应用 ...