在服务器上linux系统安装完成之后,不要安装其他内容。以免更多意外冲突。
centos7/8 自带防火墙是firewalld。firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作。当你使用的是 Systemd 的时候, firewalld 会在 Docker 之前启动,但是如果你在 Docker 启动之后再启动或者重启 firewalld ,你就需要重启 Docker 进程了。最直接的办法,将firewalld换成iptables,具体方法这里不做介绍。
docker对linux系统版本有要求,系统内核版本必须高于3.10。查看内核版本,不行只能更换系统
Uname -r
- 首先检查服务器组件
安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
#首先添加yum仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#下面尝试安装docker
yum install docker-ce docker-ce-cli containerd.io -y
如果出现冲突查看具体原因podman冲突
直接卸载podman
yum erase podman buildah
如果是依赖包找不到来源可以尝试后面的命令
yum install docker-ce docker-ce-cli containerd.io –allowerasing
- 启动docker,并设置开机启动
测试一下,执行如下命令
docker run hello-world
结果:Ok,没有问题
如果遇到
请检查服务器网络是否正常,这个测试需要链接网络进行下载拉取测试镜像。
配置远程访问,防火墙开端口这里就不说了。docker需要对service进行配置才能远程访问。一般我们建议不开启(注意,该端口为无保护状态,极有可能被挖矿病毒侵入或其他黑客攻击)。
#进入service目录
cd /lib/systemd/system
#修改
vi docker.service
- Docker Portainer一个可视化docker管理组件(可以不装)
Docker的辅助工具,一般也是以Docker image的方式提供,安装它们不需要用apt-get或者下载tgz包,只需要用docker pull把镜像下载到本地即可使用。安装Portainer方法如下
docker search portainer # 查看portainer相关的工具
docker pull docker.io/portainer/portainer #下载portainer镜像
docker images # 查看是否正常下载到本地
# 运行portainer
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name portainer-test docker.io/portainer/portainer
这里端口9000可以自己设置
第一次登陆会让你设置密码,设置并记录下来,避免忘记。这里需要8位以上密码。
这个工具开放端口可以远程web登陆,并且可以同时管理多个docker实例,还有日志查看,容器命令行,监控等非常多的功能,推荐一下。
- centos7和以上版本防火墙采用firewall,其与docker会产生对iptable操作的抢夺,造成端口异常问题。
我们需要关闭docker的防火墙操作。
修改相关配置(未尝试,如非必要建立不要使用)#修改配置文件,根据docker的官方文档,这里如果没有配置文件我们可以直接使用mkdir和touch等命令创建 vim /etc/docker/daemon.json #在json中加入如下内容 { "iptables":false } #然后重启docker systemctl restart docker