K8S学习之CentOS7系统搭建Docker环境
Docker安装成功后首次启动报错:docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)Active: failed (Result: start-limit)
K8S学习之CentOS7系统搭建Docker环境
前言
-
内容介绍
本次安装事先基于win10环境安装VMWare 12虚拟机,并创建完成CentOS7镜像,在以上基础上安装Docker,由于重点在安装Docker,搭建Linux环境的步骤就直接跳过,可以参照下面的参考链接进行环境搭建。
-
环境信息
# CentOS7版本 uname -a ## Linux nbsp 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux # 最终安装docker版本 docker -v ## Docker version 20.10.10, build b485636
CentOS7虚拟机安装联网
-
操作命令
# 1. 进入/etc/sysconfig/network-scripts目录,查看该目录有没有形如ifcfg-XXX的文件 cd /etc/sysconfig/network-scripts ## 如果找不到类似文件,很有可能是下载的centos镜像版本和安装centos时选择的centos版本不一致,比如:centos镜像是64位的,却按照32位来安装。 # 2. 在VMware里,依次点击"编辑" - "虚拟网络编辑器" ,设置为桥接模式,采用的是无线网,点击更改时会弹出WMnet0,将其设置为桥接模式 # 3. 修改ifcfg-XXX文件(可不做,每次重启后查看当前ip即可) # 4. 重启网卡服务 service network restart
-
连接工具
日常命令推荐:MobaXterm
文件上传推荐:fileZilla
Docker环境部署
添加普通用户执行权限
-
操作命令
# 查看当前主机是否有docker组 cat /etc/group | grep docker # 创建docker组 sudo groupadd docker # 为新增的用户添加sudo权限 wq!强制写入 sudo vi /etc/sudoers ##在92行下一行添加 用户名 ALL=(ALL) ALL # 把当前用户加入到docker组 sudo gpasswd -a 用户名 docker ## 或者 sudo usermod -aG docker 用户名 # 查看当前用户组 groups
安装Docker
-
安装 Docker 依赖包
# 首先安装 Docker 必要依赖包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2
-
安装Docker
# 自带 yum 没有 Docker-CE 所以我们需要先增加 docker repo(设置国内 yum 源) sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 用 yum 安装 Docker sudo yum install -y docker-ce ## -y(当安装过程提示选择全部为 "yes") # 查看版本 docker -v
启动Docker
-
常用启动命令
# 启动 Docker 后台服务 sudo systemctl start docker ## Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details. # 加入开机启动 sudo systemctl enable docker ## 或者 chkconfig docker on
-
启动报错信息
[nbsp@nbsp docker]$ systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: failed (Result: start-limit) since Sat 2021-11-13 22:30:46 CST; 7s ago Docs: https://docs.docker.com Process: 4850 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE) Main PID: 4850 (code=exited, status=1/FAILURE)
-
启动报错解决流程
- 修改docker.service文件参数配置
vi /usr/lib/systemd/system/docker.service ## 修改内容中参数 ExecStart=/usr/bin/dockerd
- 修改系统SELINUX
# 将SELINUX=enforcing改为SELINUX=disabled,保存后退出 vim /etc/selinux/config
- 新增并修改docker文件
# docker成功但系统并未存在docker文件 vim /etc/sysconfig/docker ## 加入 OPTIONS="--selinux-enabled=false --log-driver=journald --signature-verification=false"
- 新增并修改daemon.json文件
vim /etc/docker/daemon.json
新增以下内容
{ "registry-mirrors": ["https://0w6b0t5c.mirror.aliyuncs.com"], # 是用来pull容器加速用的,跟此次问题无关。 "storage-driver": "devicemapper" # 解决此次问题 }
- 关闭防火墙
# 关闭防火墙 systemctl stop firewalld.service # 其他备用命令 # 查看防火墙状态 firewall-cmd --state ## inactive未开启的 # 临时关闭 systemctl stop firewalld # 开机禁止启动防火墙 systemctl disable firewalld # 临时打开 systemctl start firewalld # 开机启动防火墙 systemctl enable firewalld
其他尝试命令
# 使用dockerd命令排查原因 dockerd # 安装相关组件 yum install xfsprogs # 升级 yum update
-
总结
最终将防火墙关闭的后,执行启动容器命令,成功将容器启动,但最终不清楚是所有命令加起来将问题处理了,还是仅仅由于防火墙!!!
Docker配置
-
配置国内镜像
针对Docker客户端版本大于1.10.0
# 创建文件夹 sudo mkdir -p /etc/docker # 编辑/etc/docker/daemon.json文件,并输入国内镜像源地址 ## 方式一: tee给daemon.json文件加入 sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://登录阿里云获取.mirror.aliyuncs.com"] } EOF ## 方式二:用vi命令手动分步骤实现 sudo vi /etc/docker/daemon.json ## 中国官网镜像加速 { "registry-mirrors": ["https://registry.docker-cn.com"] } # 重新加载配置文件 sudo systemctl daemon-reload # 重启docker服务 sudo systemctl restart docker
针对Docker客户端版本较低
echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker systemctl daemon-reload service docker restart
-
检查加速器是否生效
docker info # 如下内容,说明配置成功 Registry Mirrors: https://reg-mirror.qiniu.com
Docker常用命令
-
镜像相关指令
# 查看已有镜像 docker images # 在docker官网搜寻指定镜像 docker search 镜像 # 下载镜像(不加标签默认下载最新版本的镜像) docker pull 镜像名字:tag(即标签) # 保存已有镜像 docker save -o name.tar 镜像name:tag # 加载镜像 docker load -i name.tar # 镜像的删除(删除镜像前请删除所有与该镜像有关的容器) docker rmi 镜像ID(或name:tag) # 修改镜像name和tag docker tag 镜像name 新镜像name:新tag
-
容器相关指令
# 启动容器(-d:后台运行;--name:指定容器名字;-p:映射容器端口到本机端口;-v:容器目录文件挂载至本机目录) docker run -d --name 自定义容器name -p 本机端口:容器端口 -v 本机目录:容器目录 镜像ID(或name:tag) # 进入正在运行的容器内部(-i:以交互模式运行容器;-t:为容器重新分配一个伪输入终端.通常it一起使用) docker exec -it 容器name(或ID) /bin/bash # 容器的启/停/重启/删除 docker start/stop/restart/rm 容器name(或ID) # 查看容器端口映射 docker port 容器name(或ID) # 查看容器信息 docker inspect 容器name(或ID) # 查看正在运行的容器 docker ps # 查看所有容器(包括正在运行的、停止的,不包括删除的) docker ps -a # 查看容器内的进程 docker top 容器name(或ID) # 监控并显示最新100行的容器日志(可以直接使用docker logs容器name(或ID),但是日志容量大的最好加上条件) docker logs -f --tail=100 容器name(或ID)
-
其他指令
# docker启/停/重启/查看状态 sudo systemctl start/stop/restart/status # 查看当前安装的docker有关信息 docker info
参考链接
-
CentOS 7安装教程(图文详解)
https://blog.csdn.net/qq_44714603/article/details/88829423
-
VMware安装Centos7详细教程
https://www.cnblogs.com/jiangcong/p/14422322.html
-
使用VMware安装CentOS7系统后,无法联网
https://blog.csdn.net/chinabate/article/details/84900286
-
解决CentOS7虚拟机无法上网并设置CentOS7虚拟机使用静态IP上网
https://blog.csdn.net/a785975139/article/details/53023590
-
VMware 搭建centos7虚拟机后,网络配置以及出现Restarting network (via systemctl):错误的解决方案
https://blog.csdn.net/qq_32931493/article/details/80557618
-
连接linux的一些工具
https://blog.csdn.net/u014803081/article/details/87989013
-
CentOS Docker 安装
https://www.runoob.com/docker/centos-docker-install.html
-
Centos 7 搭建Docker环境
https://blog.csdn.net/u012486840/article/details/97930646
-
Docker启动时的报错汇总
https://www.jianshu.com/p/93518610eea1
-
centos7下修改docker工作目录
https://www.cnblogs.com/ding2016/p/10884128.html
更多推荐
所有评论(0)