Ubuntu18.0.4安装docker
我的系统是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