【Docker】deepin/ubuntu/centos安装docker
deepin、ubuntu虚拟机和centos服务器安装docker
1. 更新软件包
1 | # deepin 和 ubuntu |
安装docker之前,先更新一下软件包。在deepin中执行更新命令的效果如下。
1 | mothra@mothra-PC:~$ sudo apt-get update && sudo apt-get upgrade |
2. 安装docker
2.1. 在deepin或centos8上安装docker
下面给出的安装命令在 deepin v20.9 和 centos 8 上测试通过
1 | # deepin |
1 | # centos 8 |
安装之后,用如下命令看看版本,看看是否安装成功;出现版本号就是安装完毕了。
1 | $ docker -v |
如下图所示,就是安装成功了,docker命令能显示出版本号,docker-compose命令也是正常的。
2.2. 在 Ubuntu 22.04 LTS 上安装 docker
参考该博客在ubuntu中安装:容器与云|如何在 Ubuntu 22.04 LTS 中安装 Docker 和 Docker Compose
1 | # 开始前先更新软件源 |
上述命令在 WSL2 的 Ubuntu 22.04.03 系统中测试通过,成功安装docker。
1 | ❯ docker -v |
在 ubuntu 22.04 上,还可以使用官方提供的脚本快速安装docker,这样会方便很多。
1 | sudo apt install -y curl |
除了这个脚本,还可以使用下面的脚本,都是等价的
1 | curl -fsSL https://get.docker.com -o get-docker.sh |
如果因为网络问题安装不了,可以在脚本后填加使用阿里云镜像的选项。如果下载不了脚本,可以在windows电脑上下载好脚本,传输到linux主机上,再执行脚本。
1 | sh get-docker.sh --mirror Aliyun |
2.3. CentOS 8 安装报错找不到 docker 软件包
在centos8上安装docker的时候,发现找不到docker的相关信息
1 | # sudo yum install docker-ce docker-ce-cli containerd.io |
这是因为我们没有docker的软件源。依照如上博客中的教程,执行如下命令(上方的安装命令中已包含这些命令,此处写出来是告知添加这些命令的原因)
1 | # 下载软件源 |
这样就能安装成功了,执行docker version
命令查看版本,出现如下内容就是成功安装docker了。
1 | > docker version |
2.4. 启动和停止docker服务
使用如下命令,启动docker服务,不同系统启动docker的命令可能不同,建议自行百度相关Linux系统下的命令。大部分Linux系统都可以使用systemctl
命令。
1 | systemctl start docker # 启动docker服务 |
如果需要,还可以设置开机自启动docker服务。
1 | systemctl enable docker # 开机自启 |
2.5. 安装docker-compose
2.5.1. 使用Python安装(可能失败)
需要保证系统内的python环境完好
1 | pip3 install -i https://mirrors.aliyun.com/pypi/simple docker-compose |
安装好了之后查看版本,如下便是安装成功了
1 | $ docker-compose version |
参考 https://www.cnblogs.com/yizhangheka/p/16614941.html
但在我的CentOS8上,上面的python安装方式会失效;我使用的是python3.10.6
,安装会出现如下报错,无法成功安装;
1 | File "<string>", line 201, in get_source_files |
所以需要尝试其他方式。
2.5.2. 从Github安装可执行文件
参考博客 : Install Docker and Compose on CentOS 8 | RHEL 8 和 how-to-install-docker-on-centos-8/。
可以使用如下命令,直接下载docker-compose的可执行文件安装。
1 | sudo curl -L "https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
安装完毕后的测试结果如下,也是OK的
1 | # docker-compose -v |
但是这个安装的版本实在是太老了,最新版本都已经到2.23.0了。又在想办法找最新版本的安装教程;我尝试修改上述curl命令中的版本号,但好像没有用。
其实图片里面的问题在于链接中版本号之前少了一个
v
,加上去之后就可以了。
下文是我当时找到正确下载链接的过程,思路可供参考。
还是得用老办法,先打开github的release页面,找找可执行文件的下载地址:github.com/docker/compose/releases
这时候我发现上述的curl安装命令其实本质上就是下载一个可执行文件。在CentOS8上,uname -s
是linux
,uname -m
是x86_64
,命令执行结果如下;
1 | > uname -s |
所以其实我们需要下载的是docker-compose-linux-x86_64
这个文件,对应下图中红色箭头所指的位置
右键该文件,即可复制文件下载地址
1 | https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-linux-x86_64 |
找到最新版本的文件url了,将其用相同的方式下载下来不就行了?
1 | sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose |
如果github下载实在是太慢,可以尝试用github的代理地址下载;截至20231028,该代理地址的下载速度很快,完全可用。
1 | sudo curl -L "https://ghproxy.com/https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose |
安装完成,当前v2.23.0最新版本搞定!
1 | > docker-compose --version |
实测该方式在Ubuntu22.04虚拟机上也可用。
3. 修改docker镜像源
国内下载docker的images有时候很慢,所以需要我们修改镜像源。可以打开这个网站。
用如下办法修改镜像源,编辑/etc/docker/daemon.json
配置文件。
1 | sudo vim /etc/docker/daemon.json |
进入该文件后,按i
进入编辑模式,复制如下内容,用shift+ins
粘贴到文件内
1 | { |
然后:wq
退出,用如下命令重启docker服务,镜像就设置好了
1 | sudo systemctl restart docker |
国内可用的docker镜像有下面这些,更多镜像可以百度看看。南京大学和上海交大的镜像源用的人少,更好用。
1 | 科大镜像:https://docker.mirrors.ustc.edu.cn |
2024.06.12更新:因为一些缘故,国内的大部分docker镜像站点都已经停止服务,如果有需要,可以考虑购买海外的云服务器,自建docker拉取的代理,或者尝试使用dockerfile在基础镜像之上构建你需要的容器镜像。
4. 一些docker常用命令
4.1. docker cli命令
因为当前我们用的是deepin的用户,而不是root,所以执行docker相关命令的时候都需要带上sudo
1 | sudo docker ps # 查看当前正在运行的容器 |
docker-compose的操作需要根据docker-compose.yml
进行,具体的请参考不同容器的yml文件编写和使用。一般用户量大的开源docker都会有docker-compose.yml
的示例文件的!
4.2. docker-compose 升级容器镜像
如下就是一个部署memos服务的简单docker-compose.yml
文件,使用的镜像版本是latest;
1 | version: "3.0" |
假设你需要升级这个docker的容器镜像版本,应该采用如下命令来操作
1 | sudo docker-compose stop # 停止当前容器运行 |
执行效果如下图
另外一个办法就是将yml文件中的latest改成最新docker镜像版本的版本编号,再执行docker-compose up -d
来运行,此时也会自动pull指定版本的镜像并启动docker容器。
注意:升级容器镜像之前,请备份当前容器的配置、资源文件夹,避免升级失败时某些文件被新镜像修改而无法回退旧版本!备份了容器的配置文件夹,至少升级失败还能保证旧版本可以正常使用。
另外,如果你使用的是latest来拉取镜像,那么在升级版本之前请记录下升级之前使用的容器版本号(非latest的数字版本号,一般在容器内的服务/前端页面中都能看到当前的版本号),或者是当前使用的容器镜像的hash值,方便后续回退到能正常使用的旧版本。
5. The end
其他的docker操作,请根据特定容器进行操作,详情百度吧!
有任何问题,欢迎评论区交流!