ubuntu docker 安装
当然也可以直接参照官方doc:https://docs.docker.com/engine/install/ubuntu/
手动安装
卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
设置仓库
- 更新apt包索引
sudo apt-get update
- 安装apt依赖包
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- 添加docker的官方GPG秘钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
- 验证是否拥有带指纹的秘钥
sudo apt-key fingerprint 0EBFCD88
- 设置稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
安装 Docker Engine-Community
- 安装最新版本的 Docker Engine-Community 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 要安装特定版本的话
#step 1:
apt-cache madison docker-ce
docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~ubuntu | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~ubuntu | https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu xenial/stable amd64 Packages
...
#step2
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
测试Docker是否安装成功
sudo docker run hello-world
安装QA
- docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
出现这个问题的原因是docker没有启动,执行sudo service docker start
- docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
这个是没有权限造成的,执行docker需要root权限,因此只要加上sudo或者su切换成root用户执行命令即可
如果想以普通用户的方式执行的话,可以按以下方式解决:
方法1:
如果还没有 docker group 就添加一个:
sudo groupadd docker
将用户加入该 group 内。然后退出并重新登录就生效啦。
sudo gpasswd -a ${USER} docker
重启 docker 服务
systemctl restart docker
切换当前会话到新 group 或者重启 X 会话
newgrp - docker
注意:最后一步是必须的,否则因为 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,
所以 docker images 执行时同样有错。
方法2:
每次启动docker或者重启docker的之后
cd /var/run
sudo chmod 666 docker.sock