先在Linux中手动安装docker,然后在docker中安装宝塔面板,并进行docker网络端口映射。
手动安装docker
第一步,卸载旧版本docker。
若系统中已安装旧版本docker,则需要卸载旧版本docker以及与旧版本docker相关的依赖项。
命令:yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
第二步,安装gcc依赖。
命令:yum -y install gcc gcc-c++
第三步,使用docker仓库进行安装。
在新主机上首次安装docker Engine-Community之前,需要设置docker仓库。之后,可以从仓库安装和更新docker。
# 设置仓库,安装所需的软件包。
命令:yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置稳定的仓库,使用官方源地址(比较慢)
命令:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 可以选择国内的一些源地址,如阿里云
命令:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 可以选择国内的一些源地址,如清华大学源
命令:yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
第四步,安装docker Engine-Community。
# 安装最新版本的docker Engine-Community和containerd
命令:yum -y install docker-ce docker-ce-cli containerd.io
若启用了多个docker仓库,则在利用“yum install”或“yum update”命令安装docker时没有指定docker版本情况下,进行docker安装或更新将始终安装最高版本的docker。
docker安装完默认未启动,并且已经创建好docker用户组,但该用户组下没有用户。
# 安装特定版本的docker Engine-Community
# 列出存储库中可用的版本并按版本号从高到低进行排序
命令:yum list docker-ce --showduplicates | sort -r
# 通过其完整的软件包名称安装特定版本,如docker-ce-24.0.0。
命令:yum -y install docker-ce-24.0.0 docker-ce-cli-24.0.0 containerd.io
第五步,启动docker。
命令:systemctl enable docker
systemctl start docker
systemctl restart docker
若结果显示“Job for docker.service failed because the control process exited with error code.See "systemctl status docker.service" and "journalctl -xe" for details.”,则运行如下命令:
systemctl daemon-reload
systemctl restart docker.service
第六步,验证docker Engine-Community是否正确安装。
命令:docker version
docker run hello-world
若结果显示“Hello from docker!”,则说明docker Engine-Community正确安装。
进行docker网络端口映射
第一步,从Docker Hub上查找cyberbolt/baota镜像。
命令:docker search cyberbolt/baota
第二步,创建执行网络端口映射容器。
格式:docker run -itd --net=host --restart=always --name 容器名 镜像名
命令:docker run -itd --net=host --restart=always --name baota cyberbolt/baota:latest
注释:
-itd:等同 -i(以交互模式运行容器),-t(为容器重新分配一个伪输入终端),-d(后台运行容器,并返回容器ID);
--net=host:容器和主机使用同一网络;
--restart=always:守护进程,容器挂掉将自动重启;
--name baota:容器名称;
cyberbolt/baota:latest:镜像名称(最新版本)。
第三步,列出当前所有正在运行的容器。
命令:docker ps
第四步,列出所有的容器。
命令:docker ps -a
第五步,强制停止容器。
命令:docker kill 容器ID或容器名称
第六步,删除容器。
命令:docker rm 容器ID或容器名称
或 docker rm -f 容器ID或容器名称强制
第七步,删除多个容器。
命令:docker rm -f $(docker ps -a -q)
第八步,列出本地所有的镜像。
命令:docker images -a
第九步,从docker中删除镜像。
命令:docker rmi 镜像ID或容器名称
第十步,从Docker中强制删除镜像。
命令:docker rmi -f 镜像ID或容器名称
第十一步,通过docker images -p查询到的镜像ID来删除所有镜像。
命令:docker rmi -f $(docker images -p)
第十二步,查看容器内运行的进程。
命令:docker top 容器ID或容器名称
可以从结果得到端口号8888。
第十三步,进入baota容器。
命令:docker attach [容器ID]
或 docker exec -it [容器ID] /bin/bash
第十四步,访问baota页面。
登录网址:http://x.x.x.x:8888/login
如果页面成功显示“宝塔Linux面板”,则说明宝塔面板安装成功并且docker网络端口映射成功。
利用原始账号:cyber,原始密码:abc12345登录宝塔Linux面板。
卸载docker
# 卸载docker
命令:systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
# 删除安装包
命令:yum remove docker-ce
# 删除镜像、容器、配置文件等内容
命令:rm -rf /var/lib/docker
rm -rf /var/lib/containerd