在Ubuntu服务器上安装Docker以及Portainer
今天在着手准备把Wordpress迁移到Docker,发现国内按照Docker文档的方法下载Docker很慢,阿里云官方镜像站上的内容已经很老旧,有些与Docker最新文档不同的地方需要更新。于是借此机会介绍如何使用阿里云官方镜像站在Ubuntu上用apt安装Docker Engine。
安装Docker
使用apt安装Docker
参考该页面,我们可以看到使用apt安装的大致步骤是 安装依赖-安装GPG证书-写入软件源-安装Docker。在这里,写入软件源的方法与Docker文档有一定出入。本人将其改成了Docker文档中的写法,避免source.list
文件过于混乱,兼容性也更强:
sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
气死了,阿里源太慢了,删除/etc/apt/sources.list.d/docker.list
后运行以下代码换用中科大源,也可以直接运行使用中科大源:
sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
建立Docker用户
Ubuntu在安装好后已经建立docker用户组,使用cat /etc/group | grep docker
查看。如果需要使非root用户能够使用docker,参考文档把用户加入docker用户组。
systemctl
常用命令
启动Docker服务:
systemctl start docker
查看Docker服务状态:
systemctl status docker
停止Docker服务:
systemctl stop docker
重启Docker服务:
systemctl restart docker
注意,wsl不使用systemd
,需要使用service
命令。
启动Docker服务:
service docker start
查看Docker服务状态:
service docker status
停止Docker服务:
service docker stop
重启Docker服务:
service docker restart
卸载Docker
参考官方文档,如果出现了问题,需要卸载Docker,可以运行:
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
使用Portainer可视化管理Docker
Portainer可以可视化管理Docker,它本身也是一个Docker容器,只需给它传入Docker Unix套接字即可以网页UI的形式管理Docker。
根据文档,首先创建一个数据宗卷:
docker volume create portainer_data
然后,运行Portainer容器即可:
docker run -d -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
如果是虚拟机/WSL安装,这时访问9443端口应当可以看到页面。如果在服务器安装,还需要配置反向代理。反向代理的配置无需多言,需要注意的是Portainer仅支持https访问,在代理https://127.0.0.1:9443
之后还需要设置SSL证书。
Failure: Unable to retrieve templates问题
由于Portainer会经常获取https://raw.githubusercontent.com/portainer/templates/master/templates-2.0.json
的内容来拉取快速建立容器的模板,所以国内经常出现Failure: Unable to retrieve templates的问题。我在网站中保存了一份该文件,在 设置 - App Templates - URL 中填入该链接即可:
https://cdn.ipangbo.cn/js/templates.json