Ubuntu18.0.4安装docker

家住魔仙堡 提交于 2020-04-28 04:59:07

我的系统是elementary os,内核Ubuntu18.0.4

用仓库的方式安装,网上一堆教程,但是就是先入为主,遇到问题的时候没有自我思考

 

1.先更新系统,并安装相关依赖包,让apt可以通过https访问存储库

sudo apt update

sudo apt install apt-transport-https ca-certificates curl software-properties-common

 

2,添加docker官方的GPG证书

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

 

3.写入软件源信息

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

 

加了镜像源之后,更新就死活更新不成功,报404错误,网上教程都是这样的啊,怎么会404呢,主要自己还是没有主动思考

这一步,其实是将镜像源放到/etc/apt/sources.list,update更新系统包索引

里边的$(lsb_release -cs)是获取你自己电脑的发行版号,我电脑出来的是juno,官方压根没有这个版号,这个是elementary os自己的版号,它应该是把Ubuntu的版号重新定义了

所以直接手动修改/etc/apt/sources.list,把里边的juno改成bionic,因为Ubuntu的18.0.4的发型版号是bionic,改完执行第4步,成功

 

4.更新源

sudo apt update

 

5.安装最新版本的 Docker CE

sudo apt install -y docker-ce

 

6.查看 Docker 服务状态

systemctl status docker

 

7.启动 Docker

sudo systemctl start docker

 

 

8.Docker 开机启动

sudo systemctl enable docker

 

9.运行 Docker helloworld

# 查看 Docker 版本信息

sudo docker version

# 运行 Docker helloworld

sudo docker run hello-world

# 查看 Docker 容器状态

sudo docker ps

 

10.使用过程中可能会出现 permission denied错误,权限错误

原因:docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。

解决方法:

  1.获取sudo权限访问

  2.docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令

  sudo groupadd docker #添加docker用户组

  sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中

  newgrp docker #更新用户组

  docker ps #测试docker命令是否可以使用sudo正常使用

 

11.我发现上面这个只在当前目录下,用下面的明了了将没有权限访问的文件改成自己的,xxx为你自己的用户名

sudo chown -R xxx:xxx /var/run/docker.sock

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!