先在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。

# 更新yum软件包索引

命令:yum makecache

# 安装最新版本的docker Engine-Community和containerd

命令:yum -y install docker-ce docker-ce-cli containerd.io

# 查看docker-ce是否成功安装

命令:yum list docker-ce

 

docker安装完默认未启动,并且已经创建好docker用户组,但该用户组下没有用户。 

# 列出存储库中可用的版本并按版本号从高到低进行排序

命令: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

若结果显示“Unable to find image 'hello-world:latest' locally”,则需要按照下面的步骤来解决:

1)创建文件daemon.json文件。

命令:touch /etc/docker/daemon.json

2)配置文件/etc/docker/daemon.json,添加阿里云镜像。

 

{
"registry-mirrors": ["https://ufxq8t1x.mirror.aliyuncs.com"]
}

3)重启docker服务。

命令:systemctl restart docker

systemctl status docker

再次验证:docker run hello-world

若结果显示“Hello from docker!”,则说明docker安装成功。

进行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 images -a

第四步,列出当前所有正在运行的镜像。

命令:docker images

第五步,从docker中删除镜像。

命令:docker rmi 镜像ID或容器名称

# 从docker中强制删除镜像

命令:docker rmi -f 镜像ID或容器名称

# 通过docker images -p查询到的镜像ID来删除所有镜像

命令:docker rmi -f $(docker images -p)

第六步,列出所有的容器。

命令:docker ps -a

第七步,列出当前所有正在运行的容器。

命令:docker ps

第八步,强制停止容器。

命令:docker kill 容器ID或容器名称

第九步,删除容器。

命令:docker rm 容器ID或容器名称

# 从docker中强制删除容器

命令:docker rm -f 容器ID或容器名称

# 删除多个容器

命令:docker rm -f $(docker ps -a -q)

第十步,查看容器内运行的进程。

命令:docker top 容器ID或容器名称

可以从结果得到端口号8888。

 

第十一步,进入baota容器。

命令:docker ps

docker exec -it [容器ID] /bin/bash

若结果显示下图所示,则表明尝试与正在重启的容器进行交互时发生了冲突,docker处于不可用的状态,因此,不能执行特定的操作。

 

可以通过下面的方法来解决这个问题:

1)运行命令“docker logs [容器ID]”来查看日志,会得知为什么容器会重启。

 

删除该容器,然后在重装容器时去掉“/usr/sbin/init”。

2)当重装容器后,运行命令“docker ps”查看状态,一旦状态变为“up”,就表示容器已经准备好了。

 

3)最后运行命令“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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐