注意:非root用户必须要有sudo权限

一、安装前的准备

1.查看当前主机是否有docker组

若没有输出结果则新建

再次查看,发现已经有了docker组

2.新增拥有sudo权限的用户(若知道root和其他拥有sudo权限的系统用户密码,跳到3;若都没有,必做)

修改该用户的密码

为新增的用户添加sudo权限

sudo vi /etc/sudoers
  在92行下一行添加
  test   ALL=(ALL)   ALL

3.把当前用户加入到docker组 (此时用户并没有加入进docker组)

切换至sudo权限用户,然后再切换回当前用户(此时可以看到用户已经加入docker组

3.删除新增的用户和它的sudo权限(第2步没做请忽略此步)

sudo vi /etc/sudoers
  在92行下一行添加
  test  ALL=(ALL) ALL

两次退出,不然删除用户时会报错

二、安装docker

1.下载docker源码包并上传至虚拟机

https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/static/stable/x86_64/docker-18.09.0.tgz

2.解压源码包至指定目录下

3.将解压出来的docker目录下的指令复制到 /usr/bin/ 目录下

sudo cp docker/* /usr/bin/ 

4./usr/bin/目录下docker有关指令的所属用户和所属组(必做,不然非root用户使用docker指令报错:权限不够)

sudo chown root:docker /usr/bin/docker*
sudo chown root:docker /usr/bin/containerd*
sudo chown root:docker /usr/bin/runc
sudo chown root:docker /usr/bin/ctr

5.查看一下是否改变所属用户和所属组(得到和解压出来的docker目录下的一样的8个指令)

6.将docker注册为service服务

新建该文件
sudo vi /etc/systemd/system/docker.service

加入以下内容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target [Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=
StartLimitInterval=60s [Install]
WantedBy=multi-user.target

7.添加执行权限并重新加载配置文件

sudo chmod a+x /etc/systemd/system/docker.service
sudo systemctl daemon-reload

8.docker镜像加速(可以不做,但是docker pull会很慢,由于docker官网在海外)

新建该文件
sudo vi /etc/docker/daemon.json

加入以下内容
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

9.启动docker

sudo systemctl start docker

三、docker基础命令

1、其他指令
docker启/停/重启/查看状态
sudo systemctl start/stop/restart/status
查看当前安装的docker有关信息
docker info

2、镜像相关指令

查看已有镜像
docker images 在docker官网搜寻指定镜像
docker search 镜像 下载镜像(不加标签默认下载最新版本的镜像)
docker pull 镜像名字:tag(即标签) 保存已有镜像
docker save -o name.tar 镜像name:tag
加载镜像
docker load -i name.tar 镜像的删除(删除镜像前请删除所有与该镜像有关的容器)
docker rmi 镜像ID(或name:tag)

修改镜像name和tag
docker tag 镜像name 新镜像name:新tag

3、容器相关指令

启动容器(-d:后台运行;--name:指定容器名字;-p:映射容器端口到本机端口;-v:容器目录文件挂载至本机目录)
docker run -d --name 自定义容器name -p 本机端口:容器端口 -v 本机目录:容器目录 镜像ID(或name:tag) 进入正在运行的容器内部(-i:以交互模式运行容器;-t:为容器重新分配一个伪输入终端.通常it一起使用)
docker exec -it 容器name(或ID) /bin/bash 容器的启/停/重启/删除
docker start/stop/restart/rm 容器name(或ID) 查看容器端口映射
docker port 容器name(或ID) 查看容器信息
docker inspect 容器name(或ID)

查看正在运行的容器
docker ps 查看所有容器(包括正在运行的、停止的,不包括删除的)
docker ps -a 查看容器内的进程
docker top 容器name(或ID) 监控并显示最新100行的容器日志(可以直接使用docker logs容器name(或ID),但是日志容量大的最好加上条件)
docker logs -f --tail=100 容器name(或ID)


linux centos7 非root用户安装源码版docker的更多相关文章

  1. Linux 以非root用户安装zsh&配置on my zsh

    此文章参考以下三篇文章,如有侵权请联系 Linux非root用户安装zsh, 并用oh-my-zsh进行配置 在没有sudo权限的Linux服务器下安装oh-my-zsh 不使用root权限安装zsh ...

  2. Linux 下非 root 用户安装 theano(配置 GPU)

    非 root 用户,安装 Python 第三方的包,尤其像 theano,存在大量的依赖项,存在的主要问题,是安装各个包时的权限问题.所幸,存在这样一个集成工具,叫 anaconda,其已经内置了许多 ...

  3. Linux系统非root用户安装perl模块

    非root权限安装perl 在使用Linux或是unix时,perl是一个非常有用的脚本的语言. 关于perl的模块安装,网上也有很多介绍,一方面可以通过不同套件自带的软件安装工具安装,一方面可以通过 ...

  4. Linux下非root用户安装软件的一般流程:

    1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可 3. 切换到解压后的目录, ...

  5. linux 之 非root用户安装mysql5.7.27

    下载 下载 mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz 详见linux(CentOS7) 之 MySQL 5.7.30 下载及安装. 配置规划 用户: zhj ...

  6. Linux下非root用户如何安装软件

    Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...

  7. [转载]Linux下非root用户如何安装软件

    [转载]Linux下非root用户如何安装软件 来源:https://tlanyan.me/work-with-linux-without-root-permission/ 这是本人遇到的实际问题,之 ...

  8. 非root用户安装软件

    下面简要说一下Linux下非root用户安装软件的一般流程: 1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar - ...

  9. 源代码安装-非ROOT用户安装软件的方法

    0.    前言 如果你没有sudo权限,则很多程序是无法使用别人编译好的文件安装的. 还有时候,没有对应你的主机配置的安装包,这时候需要我们自己下载最原始的源代码,然后进行编译安装. 这样安装的程序 ...

随机推荐

  1. 痞子衡嵌入式:嵌入式里堆栈原理及其纯C实现

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式里堆栈原理及其纯C实现. 今天给大家分享的这篇还是2016年之前痞子衡写的技术文档,花了点时间重新编排了一下格式.栈这种结构在嵌入式 ...

  2. 根据范围爬TMS规则瓦片

    因为需要简单写了一个下载地图的爬虫,代码如下: #coding=utf-8 import urllib.request import os import socket import zlib impo ...

  3. 【学习笔记】Linux基础(二):Linux的基本操作

    二.Linux的基本操作 0.正确的开关机操作 开机和登陆: 安全起见,一般不使用最高权限的root账户登入系统,光立系统时再使用 登录时为login程序提供账户名和密码即可,密码不会被显示,登陆后显 ...

  4. Docker应用部署实录(包含完善Docker安装步骤)

    Docker应用部署实录(包含完善Docker安装步骤) 前言 首先说一下这篇文章的来源.我之前接手的一个IOT项目,需要安装多个中控服务器.中控服务器需要安装RabbitMQ,Mysql,多个服务, ...

  5. 为什么用nginx:它的5个主要优点

    1.高并发,高性能 2.可扩展性好啊 3.高可靠性 4.热部署 5.BSD许可证

  6. 《ASP.NET Core 高性能系列》环境(EnvironmentName)的设置

    一.概述 程序启动时Host捕获到环境相关数据,然后交由IEnvironment(传说要作废,但是觉得这个有设计点问题,因为.NET Core 非Web怎么处理?),然后交由IWebHostEnvir ...

  7. Linux/UNIX编程:实现简单 tee 命令

    思路很简单,从标准输入文件描述符读入数据,然后同时向标准输出和参数指定的文件写出数据:如果加了 -a 选项,则以追加的方式向文件写出数据.还没了解 getopt() 函数就没判断参数是否合法. #in ...

  8. Codeforces_793

    A.找最小的数,看每个数跟它的差是否被k整除. #include<bits/stdc++.h> #define MOD 1000000007 using namespace std; ] ...

  9. socket实现文件上传(客户端向服务器端上传照片示例)

    本示例在对socket有了基本了解之后,可以实现基本的文件上传.首先先介绍一下目录结构,server_data文件夹是用来存放客户端上传的文件,client_data是模拟客户端文件夹(目的是为了测试 ...

  10. 3、实战:OutOfMemoryError异常

    目的:第一,通过代码验证Java虚拟机规范中描述的各个运行时区域存储的内容:第二,工作中遇到实际的内存溢出异常时,能根据异常的信息快速判断是哪个区域的内存溢出,知道什么样的代码可能会导致这些区域内存溢 ...