分类 Docker 下的文章

今天使用 ghcr.io 容器服务出现的问题,参照 github文档 内执行并不顺利的出现成功

如果你使用macOS且是远程会话访问(如ssh),大概率出现下面的错误

Error saving credentials: error storing credentials - err: exit status 1, out: `error storing credentials - err: exit status 1, out: `User interaction is not allowed.`

在终端中使用 security unlock-keychain 解除钥匙串的限制就能成功 Login Succeeded

这个真的是印度bug,🤮了,百分之百出现无法删除目录的错误

rm: can't remove XXX: No such file or directory

翻遍了docker的文档和issue,这貌似是和xfs分区的ftype有关,按照其他人的方案也无法解决,整🤮了

最后还是降两个版本整好了,当然重装系统大法也可以啦(逃

这里不推荐直接使用 sudo yum install -y docker-ce 来安装docker,centos自带源的docker版本会相对老旧,也可能根本不存在

在这里我讲的是在 CentOS Linux release 7.4.1708 (Core) 的环境下操作的,理论上centos7通用

0.预备操作

官方推荐的操作,先将计算机内存在的老旧docker相关软件删除

sudo yum remove docker \
                  docker-common \
                  docker-selinux \
                  docker-engine

安装必要的工具

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

添加docker自己的官方源

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
当然这时,你就可以使用 sudo yum install docker-ce 安装最新的docker社区版本了。有特殊要求或者不想使用最新的edge版本,可以继续接着看下去

1.开始

这里的操作都是视你为第一次安装docker
使用 yum list docker-ce --showduplicates | sort -r 查看当前docker社区版本的版本号选择安装
# 这是我写这篇文章时的相关版本信息
docker-ce.x86_64            17.11.0.ce-1.el7.centos             @docker-ce-edge
docker-ce.x86_64            17.09.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.0.ce-1.el7.centos             docker-ce-stable

第一列为 包名
第二列为 版本名
第三列为 标识稳定或测试

我们今天当然不可能安装第一行的那个家伙,至少第一行下面的那些我们都可以安装

我们安装就需要把列出来的信息组成包名

比如选取第二行这条

docker-ce.x86_64            17.09.0.ce-1.el7.centos             docker-ce-stable

包名 = 第一列点号前半部分 + '-' + 第二列

中间使用 - 连接

得出的包名就是酱紫的 docker-ce-17.09.0.ce-1.el7.centos

现在可以开始安装啦

sudo yum install docker-ce-17.09.0.ce-1.el7.centos

。。。等待安装完成,漫长的安装过程(视机器性能配置,安装时长会有所变化)

安装完成就可以执行下面的操作了

# 开启docker
sudo systemctl start docker

# 添加开机启动(可选)
sudo systemctl enable docker

试试docker?

# 查看版本信息是否与安装时的相符合
docker version

正常执行有输出就ok了

PS: 如果你不是使用的root账户登陆,还需要添加docker组,将当前用户添加到docker组去
# 创建docker用户组
sudo groupadd docker
# 将当前用户添加到docker组内,$USER是用户的环境变量
sudo gpasswd -a $USER docker
# 这个时候还需要 restart 重启一下docker,我不也不知道为什么reload 重载配置对docker无效
sudo systemctl restart docker

2.安装docker-compose(可选)

有什么很牛逼的作用,我现在也说不上来,毕竟所有时间加起来也才看了两天不到的样子

这里我就从不知名处截取介绍给你们看吧

Docker Compose是Docker编排服务的最后一块,前面提到的Machine可以让用户在其它平台快速安装Docker,Swarm可以让Docker容器在集群中高效运转,而Compose可以让用户在集群中部署分布式应用。简单的说,Docker Compose属于一个“应用层”的服务,用户可以定义哪个容器组运行哪个应用,它支持动态改变应用,并在需要时扩展。

官方安装命令,版本号 1.17.0 可以替换最新,github页面查看

sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

修改命令权限

sudo chmod +x /usr/local/bin/docker-compose

查看版本信息

docker-compose version

出下一篇是不可能的辣,这辈几都是不可能滴辣,steam上游戏辣么好玩,辣么多漂亮的大雕萌妹,说话又好听,我炒鸡喜欢那里辣,下一篇?不可能滴辣