Docker的安装与Mysql的Docker使用
在Ubuntu22.04上安装Docker,并配置Mysql镜像服务,并可以通过局域网访问Mysql服务
最近在实验室服务器上与这个搏斗了很久,感觉网上教程很多因为众所周知的原因,都过时了,就想着自己写一篇出来得了
我的主要的踩坑点有:
- Docker的国内镜像源很多失效了,导致很多以前的教程过期了
- Mysql的镜像安装有许多细节的配置问题
- Mysql的root权限设置、登录密码问题,以及开放局域网链接权限
安装Docker
清空原本的Docker
# 停止并删除所有正在运行的Docker容器:
sudo docker stop $(sudo docker ps -a -q)
sudo docker rm $(sudo docker ps -a -q)
# 删除所有Docker镜像:
sudo docker rmi $(sudo docker images -q)
# 删除第三方的Docker:
sudo apt purge docker-doc docker-compose docker-compose-v2 podman-docker docker.io
# 删除Docker的依赖:
sudo apt purge containerd runc
# 删除以前安装的Docker:
sudo apt purge docker docker-engine docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
# 删除 Docker 相关文件和目录:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker
sudo rm -rf /etc/systemd/system/docker.service.d
# 检查是否卸载完全
dpkg -l | grep docker
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P # 删除无用的相关的配置文件
sudo apt autoremove docker-ce-* # 删除没有删除的相关插件,或别的未删除的东西
sudo apt autoremove
- 注释:
dpkg -l
:列出所有通过dpkg安装的软件包,包括已安装的、未安装的、已安装但标记为删除的等。
grep ^rc
:grep是一个文本搜索工具,^rc表示匹配以"rc"开头的行。在dpkg的输出中,以"rc"开头的行表示软件包被标记为已删除(remove),但它们的配置文件还留在系统中。
awk '{print $2}'
:awk是一个文本处理工具,这句命令的意思是从每一行中打印出第二个字段。在dpkg -l的输出中,第二个字段是软件包的名称。
sudo xargs dpkg -P
:xargs命令将前一个命令的输出作为参数传递给dpkg -P。sudo是用来获取管理员权限,因为卸载软件包需要管理员权限。dpkg -P命令是用于完全删除软件包,包括其配置文件。
综上所述,这条命令组合的作用是找出所有已标记为删除但配置文件还留在系统中的软件包,并完全删除它们,释放系统空间并清理无用的配置文件。
安装
-
添加Docker的GPG密钥:
# 指定gpg命令将公钥保存下来(显式,更好) # /usr/share/keyrings/是Ubuntu系统用于存放密钥环的目录 # 阿里源 curl -fsSL [https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg](https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg) | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 官方源 curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 直接存到Apt秘钥仓库中(不推荐) curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
-
设置Docker APT源:
# 阿里源 echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] [https://mirrors.aliyun.com/docker-ce/linux/ubuntu](https://mirrors.aliyun.com/docker-ce/linux/ubuntu) \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 官方源 echo \ "deb [arch=amd64 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
-
更新APT软件包索引:
sudo apt update
-
安装Docker:
sudo apt install docker-ce docker-ce-cli containerd.io
-
验证Docker是否成功安装:
sudo docker --version
-
启动Docker:
sudo systemctl enable docker
,sudo systemctl start docker
-
查看docker状态:
systemctl status docker
设置用户组
默认情况下,只有root用户和docker组的用户才能运行Docker命令,而docker
守护进程通常通过一个Unix域套接字文件(通常是/var/run/docker.sock
)与客户端通信。则docker.sock
文件需要设置适当的权限,允许docker
组的成员进行读写操作。
-
(可选)建立docker组:
sudo groupadd docker
-
将当前用户加入docker组:
sudo usermod -aG docker $USER
,需要注销并重新登录才能生效 -
(可选)设置
docker.sock
文件的权