新的OCI实例,OS选择的是OEL7.9,初始环境是没有安装docker的,我们可以直接使用yum安装,之后启动docker服务:

[opc@oci-001 ~]$ sudo yum install docker
[opc@oci-001 ~]$ sudo systemctl start docker

因为默认登陆用户是opc,安装后使用docker命令都需要sudo,否则会报错权限问题:

[opc@oci-001 ~]$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json": dial unix /var/run/docker.sock: connect: permission denied
[opc@oci-001 ~]$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

为了操作方便,我们需要将opc用户加入到docker组中:

[opc@oci-001 run]$ sudo gpasswd -a opc docker
正在将用户“opc”加入到“docker”组中
[opc@oci-001 run]$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json": dial unix /var/run/docker.sock: connect: permission denied
[opc@oci-001 run]$ id
uid=1000(opc) gid=1000(opc) 组=1000(opc),4(adm),10(wheel),190(systemd-journal) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[opc@oci-001 run]$ id opc
uid=1000(opc) gid=1000(opc) 组=1000(opc),4(adm),10(wheel),190(systemd-journal),992(docker)
[opc@oci-001 run]$ id
uid=1000(opc) gid=1000(opc) 组=1000(opc),4(adm),10(wheel),190(systemd-journal) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

上面看到加入docker组后依然报错,但其实通过id和id opc验证很容易发现是当前shell没有生效,

此时需要重新登陆opc用户,再次尝试可以正常执行docker命令而无需sudo操作:

Enter your username: opc
Last login: Wed Nov 10 23:47:49 2021 from xxx.xxx.xxx.xxx
[opc@oci-001 ~]$ id
uid=1000(opc) gid=1000(opc) 组=1000(opc),4(adm),10(wheel),190(systemd-journal),992(docker) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[opc@oci-001 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[opc@oci-001 ~]$ docker version
Client: Docker Engine - Community
Version: 19.03.11-ol
API version: 1.40
Go version: go1.16.2
Git commit: 9bb540d
Built: Fri Jul 23 01:33:55 2021
OS/Arch: linux/amd64
Experimental: false Server: Docker Engine - Community
Engine:
Version: 19.03.11-ol
API version: 1.40 (minimum version 1.12)
Go version: go1.16.2
Git commit: 9bb540d
Built: Fri Jul 23 01:32:08 2021
OS/Arch: linux/amd64
Experimental: false
Default Registry: docker.io
containerd:
Version: v1.4.8
GitCommit: 7eba5930496d9bbe375fdf71603e610ad737d2b2
runc:
Version: 1.0.0-rc95
GitCommit: 2856f01
docker-init:
Version: 0.18.0
GitCommit: fec3683

此时就可以正常操作docker命令了,但是还有一个情况,如果需要登陆需要登陆信息的docker镜像仓库,比如Oracle的官方镜像仓库:

[opc@oci-001 ~]$ docker login container-registry.oracle.com
Username: xxx@xx.com
Password:
WARNING! Your password will be stored unencrypted in /home/opc/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded

成功登陆后,可以正常拉取对应镜像:

[opc@oci-001 ~]$ docker pull container-registry.oracle.com/database/enterprise:19.3.0.0
Trying to pull repository container-registry.oracle.com/database/enterprise ...
19.3.0.0: Pulling from container-registry.oracle.com/database/enterprise
86607bb85307: Pull complete
9426f6bfa092: Pull complete
16f82e6c6196: Pull complete
3b3cb340bf3a: Pull complete
914616be8a89: Pull complete
72eda44db682: Pull complete
4f4fb700ef54: Pull complete
930126d48988: Pull complete
74776159d717: Pull complete
a75af7560303: Pull complete
768777aee4bd: Pull complete
83bc762e273b: Pull complete
40ae2cf39a7a: Pull complete
97f3b11e6fb5: Pull complete
49b970fb5707: Pull complete
49801e1d38a0: Pull complete
e0d849ef2418: Pull complete
31d732a7744f: Pull complete
760939c383f0: Pull complete
5c2969cb34b8: Pull complete
Digest: sha256:ea9cd805ec49368fd288323e3f41d6c6e45698813e2ae89fd5d097c026ab5aa6
Status: Downloaded newer image for container-registry.oracle.com/database/enterprise:19.3.0.0
container-registry.oracle.com/database/enterprise:19.3.0.0

注:之前做测试过程中,最开始没有将opc加入到docker组中,所以使用sudo操作,比如登陆用 sudo docker login方式登陆,配置文件会被存放到/root/.docker/config.json,给后面运维会带来一些麻烦。所以建议大家最开始就配置规划好使用docker的用户。

小知识:将普通用户加入到docker组的更多相关文章

  1. linux下将普通用户加入到docker组,使它可以运行docker命令

    方法特别简单 gpasswd -a ${USER} docker eg: gpasswd -a jenkins docker 然后使用jenkins用户就可以执行docker命令了

  2. arch 将 普通用户添加到 docker 组

    如果还没有 docker group 就添加一个: sudo groupadd docker 如果你想用你的使用者帳戶(非root帳戶)來使用Docker,把你的帳戶加到Docker的群組中 sudo ...

  3. 【云计算】docker的小知识,帮你更深入理解容器技术

    关于docker的15个小tip   1. 获取最近运行容器的id 这是我们经常会用到的一个操作,按照官方示例,你可以这样做(环境ubuntu): $ ID=$(docker run ubuntu e ...

  4. 小知识:使用oracle用户查看RAC集群资源状态

    正常情况按照标准配置的环境变量,只能grid用户查看RAC集群资源状态. crsctl stat res -t 但是绝大部分操作其实都是oracle用户来操作,比如启停数据库,操作完成以后就需要检查下 ...

  5. docker小知识

    1,docker 使用普通用户 添加用户组: sudo groupadd docker 加入docker 组 sudo gpasswd -a ${USER} docker 或 usermod -aG ...

  6. 小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介

    笔记 ============================================= SpringCloud课程笔记.txt 第一章 课程介绍和学习路线 1.微服务架构SpringClou ...

  7. salesforce 零基础开发入门学习(十)IDE便捷小知识

    在这里介绍两个IDE的便捷开发的小知识. 一) 本地调试 由于salesforce代码只能提交以后才能调试,所以很多时候调试代码很麻烦.新版增加了一个特性:即可以在本地调试相关的代码或者查看相关代码运 ...

  8. xcode 发展史 及 做iOS 必须知道的小知识

    Xcode 3.0 是开发人员建立 Mac OS X 应用程序的最快捷方式,也是利用新的苹果电脑公司技术的最简单的途径.Xcode 3.0 将Mac OS X的轻松使用,UNIX 能量以及高性能的开发 ...

  9. s性能优化方面的小知识

    总结的js性能优化方面的小知识 前言 一直在学习javascript,也有看过<犀利开发Jquery内核详解与实践>,对这本书的评价只有两个字犀利,可能是对javascript理解的还不够 ...

  10. Android简易实战教程--第三十四话《 自定义SeekBar以及里面的一些小知识》

    转载本专栏文章,请注明出处尊重原创:博客地址http://blog.csdn.net/qq_32059827/article/details/52849676:小杨的博客 许多应用可能需要加入进度,例 ...

随机推荐

  1. 在 Linux 和 Windows 下源码安装 Perl

    Perl 是一种功能丰富的计算机程序语言,运行在超过 100 种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发.在生物信息分析领域,Perl 主要是做数据预处理.文本处理 ...

  2. 顶级生物信息学 RSS 订阅源

    早在 2018 年的时候我在"生信草堂"的公众号上写过一篇关于 RSS 的文章<使用 RSS 打造你的科研资讯头条>,介绍了关于 RSS 的一些内容和如何使用 inor ...

  3. 01-面试必会-JAVA基础篇

    1. Final 有什么用? 展开查看 被 final 修饰的类不可以被继承 被 final 修饰的方法不可以被重写 被 final 修饰的变量不可以被改变, 被 final 修饰不可变的是变量的引用 ...

  4. GPT3的技术突破:实现更准确、更真实的语言生成

    目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 5. 优化与改进 6. 结论与展望 7. 附录:常见问题与解答 GPT-3 技术突破:实现更准确.更真实的语 ...

  5. springboot下拦截器的单例模式写法

    最近在学习springboot的时候,要把用户登录的做一个拦截,又想到了不采用new对象方式,于是想到使用单例模式来进行构造拦截器对象,所以下面看代码. (不知道这个是不是要写成单例模式,也许是我最近 ...

  6. Maven进阶

    前言 在项目开发的过程中,我们通常要使用到外部依赖的组件,同时也会使用某些插件来帮助我们管理项目.例如,我们访问数据库的时候需要使用到jdbc组件,我们可以下载对应的jar包去加载到我们的应用中.在我 ...

  7. Sentieon | 每周文献-Population Sequencing-第一期

    群体基因组系列文章-1 标题(英文):The Impact of ACEs on BMI: An Investigation of the Genotype-Environment Effects o ...

  8. .Net Core 如何数据导出 Excel?(EPPlus->OfficeOpenXml 实现固定列和动态列导出)

    〇.前言 对于将数据以 Excel 表格文件输出,还是比较常用的,也存在诸多情况,比如列固定或不固定.数据类型为 List<T>或 Json 对象等. 本文通过包 OfficeOpenXm ...

  9. Spring 中 Bean 的配置细节

    前言 大家好,我是 god23bin,今天继续说 Spring 的内容,关于 Spring 中 Bean 的配置的,通过上一篇文章的学习,我们知道了 Spring 中的依赖注入,其中有两种主要的方式, ...

  10. .NET写一个自己的Lambda表达式与表达式树

    LambdaExpression继承Expression Expression又继承LambdaExpressio 所以,Expression与 Expression的区别在于:泛型类以静态类型的方法 ...