ubuntu server 22.04 安装docker
官方安装文档: https://docs.docker.com/engine/install/ubuntu/
1.更新软件列表:
sudo apt-get update
2.安装Docker所需要的软件
# ca-certificates - 包含常用CA证书
# curl - cURL(Client URL)用于数据传输的命令行工具,此处主要拥有下载签名文件等
# gnupg - 软件分发加密,防止文件被篡改
# lsb-release - 用于显示当前Linux系统的发行版本等信息
sudo apt-get install -y ca-certificates curl gnupg lsb-release
3.下载并添加Docker官方的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4.添加Docker稳定源
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装Docker软件
5.再次更新软件列表
sudo apt-get update
6.安装社区版的命令行,服务器及容器运行时环境
sudo apt-get install docker-ce docker-ce-cli containerd.io
7.通过systemd启动Docker服务
sudo systemctl start docker
8.可以通过status命令查看一下启动状态,此处无须管理员权限
systemctl status docker
如果没有遇到下面的权限问题,则不需要处理:
如果当前用户没有添加到docker组中且没有管理员权限时,用client端命令访问dockerd服务时一般会出现如下错误:
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.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.
一般来说,只要前面步骤没有出错,只需把当前用户加入docker组即可,并登出再登入使得改动在新的回话中生效。
sudo usermod -aG docker $USER
但是有时候docker组并不存在,则需要手动创建一下:
sudo groupadd docker
而笔者碰到的问题是:docker组已经创建好了,当前用户也添加到了该组中,也登入登出,但权限问题仍然存在。这时候还需要执行一下以下命令,手动激活以下组相关的改动
sudo newgrp docker
当然还有些小伙伴们会遇到其它权限问题,比如socket文件权限不正确,解决办法有两种:
a. 删掉/var/run/docker.sock,重启docker服务
b. 通过chmod/chown手动改该文件权限,具体权限内容参考如下
$ ls -al /var/run/docker.sock
srw-rw---- 1 root docker 0 Jan 28 17:00 /var/run/docker.sock
9.测试一下是否能运行
sudo docker run hello-world
10.docker 加速镜像:
没有daemon.json 的情况
# Step#1 进到 /etc/docker/ 目录下,自己创建daemon.json文件
cd /etc/docker/
sudo touch daemon.json
# Step#2 编辑文件
方式一,使用VI
sudo vi daemon.json
方式二,sudo chmod 777 daemon.json 之后,用FinalShell 直接修改
(强制退出vi,:qa!)
编辑 /etc/docker/daemon.json 文件,添加下面的内容:
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
改文件后重启daemon和docker
sudo systemctl daemon-reload
sudo systemctl restart docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2019-05-25 vscode springboot logback 日志输出到不同文件
2015-05-25 visual studio 添加虚线的快捷键