一、docker的安装与踩坑

news2025/4/6 23:17:57

目录

  • 一、安装docker(centos7安装docker)
    • 1.安装环境前期准备
    • 2.参考官网安装前准备
    • 3.参考官网安装步骤开始安装docker
    • 4.运行首个容器
  • 二、安装一些软件的踩坑
    • 1.启动docker踩坑
    • 2.安装mysql踩坑
    • 3.罕见问题
  • 三、关于我的虚拟机

一、安装docker(centos7安装docker)

1.安装环境前期准备

查询linux相关参数
docker安装环境:要求系统为64位、Linux系统内核版本为 3.8以上,这里选用Centos7.x

cat /etc/redhat-release

在这里插入图片描述

uname -r

在这里插入图片描述

2.参考官网安装前准备

官网地址

(0)如果之前你的gcc相关软件已经安装或更新直接跳过此步骤。(我这里使用到额vm虚拟机安装的新centos系统)

yum -y install gcc
yum -y install gcc-c++

(1)安裝docker之前,如果你之前安装过docker,参考如下命令进行卸载(先停掉当前docker)
停止当前运行的docker

systemctl stop docker 

官网截图
在这里插入图片描述
在这里插入图片描述
官网命令

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

额外需要执行的命令
卸载之前安装的docker引擎等相关内容,这个和你安装时的内容有关,多加几个防止删不干净。

yum remove docker-ce docker-ce-cli containerd.io

删除相关目录

rm -rf /var/lib/docker
rm -rf /var/lib/containerd

3.参考官网安装步骤开始安装docker

步骤一:

sudo yum install -y yum-utils

步骤二:
这里不推荐大家使用官网的镜像仓库地址,改用阿里云地址
在这里插入图片描述
使用阿里云地址命令如下

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

步骤三
更新yum软件包索引

yum makecache fast

步骤四
安装DOCKER CE

yum -y install docker-ce docker-ce-cli containerd.io

步骤五
启动docker

systemctl start docker

开机启动docker

systemctl enable docker

常用命令
1.停止docker

systemctl stop docker

2.重启docker:

systemctl restart docker

3.查看docker状态

systemctl status docker

如果控制台无任何打印信息,则表示docker基本无问题启动成功。

步骤六
验证docker是否安装成功

docker version

在这里插入图片描述
docker安装完毕!

4.运行首个容器

docker run hello-world

因为是新安装的docker,所以我们本地是没有hello-world这个镜像的,它会自动的去镜像仓库中下载并执行run操作。
我们也可以先下载镜像然后再执行run命令。
在这里插入图片描述

下载镜像(默认不知道版本号下载仓库中最新镜像)

docker pull hello-world

容器常用命令
1.列出当前所有正在运行的容器

docker ps

2.进入容器并返回一个伪终端

docker exec -it 容器id  /bin/bash

容器id如下
在这里插入图片描述
3.退出伪终端

exit

在这里插入图片描述
4.启动已停止运行的容器

docker start 容器ID或者容器名

5.重启容器

docker restart 容器ID或者容器名

6.停止容器

docker stop 容器ID或者容器名

7.强制停止容器

docker kill 容器ID或容器名

8.删除已停止的容器

docker rm 容器ID

一次性删除多个

docker rm -f 容器ID1  容器ID2

一次性删除所有已停止的

docker rm -f $(docker ps -a -q)

二、安装一些软件的踩坑

1.启动docker踩坑

执行命令systemctl start docker时报错,网上百度了好多方法,最后还是重新再安装一遍docker解决了。

2.安装mysql踩坑

在网上看了好久也收集一下,虽说网上的都没解决我的问题,但是还是有不错的案例。

mysql5和8都适用
①mysql用root用户连接不上之权限问题
如果你的mysql容器中,默认mysql库的user表中少了这么一条数据,那那么外部是无法连接到容器中的mysql。解决方式要么少了加一条数据,要么其他的情况改成%,再或者新建一个用户。
在这里插入图片描述
创建一个名为testuser的新用户并设置密码

CREATE USER 'testuser'@'%' IDENTIFIED BY 'password'; 

授予该用户在所有数据库上的全部权限

GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'%';

更新权限生效

FLUSH PRIVILEGES;

②mysql8数据库使用sqlyog连接密码加密方式问题
更改加密方式即可,这个只在旧版的sqlyog上出现,新版IDE已解决该问题。
在这里插入图片描述
执行命令如下

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的root用户对应密码';

3.罕见问题

容器正常启动,能进入容器使用mysql(5.7或8我都尝试了)。外部系统就是无法连接mysql。
宿主机无法连接mysql,外部Windows系统也无法连接容器的mysql。
容器是启动的这一点不用怀疑,
也不是什么mysql密码输入错误等问题,
也不是端口号问题。
各种验证,Windows ping 宿主机(也就是vm的centos7)能通,
但是在Windows的cmd中 telnet 192.168.x.x 3306,不通。
然后又在宿主机中进行对3306的测试还是不通。
linux中的防火墙早就关闭了,这一点也不需要考虑。
经过两天的研究,期间重装了无数次虚拟机的系统,重装了无数次docker,最终解决方法为把虚拟机原来的4G内存调整为8G解决。
我人都裂了,为什么会这样,其实也有一定的前兆,就是我安装docker的时候,控制台无缘无故的重启,我以为是我网络卡顿(这块我进行过重试,就是重新执行一下某个步骤的按照命令,恰巧有一次命令最后执行成功了,所以我以为是网络问题),没网内存大小上想,好几次都这样我才意识到可能是虚拟机的配置太拉胯了,因为我本地Windows的配置是
16G内存+1T西数黑盘固态,给虚拟机分的50G固态也够用了。拉胯的可能是我的处理i7-7代,处理器我也没没有额外配置,就默认1核心。
最后我都上调了一下虚拟机的配置 8G内存,60G固态,2处理器,每个内核还是1。重新安装docker,运行一个mysql容器实例,Windows连接容器中的mysql,成功连接,无任何问题。
在这里插入图片描述

三、关于我的虚拟机

在往期教程中已经有详细的安装虚拟机的教程,如果想要我的linux的镜像文件,可以私信我,我看到的时候会分享给你。
vm安装虚拟机教程
对应博客截图
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1376726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

销售团队如何实现业绩增长?CRM系统的线索管理功能有什么用?

随着“以客户为中心”观念的逐渐普及,销售团队的客户比过去更复杂,交易周期更久,竞争也更激烈。假如没有明确的销售计划,团队可能陷入混乱,最后导致客户&公司之间的负面结果。在这种情况下,人工智能驱动…

FineBI实战项目一(21):不同支付方式订单总额分析开发

点击新建组件,创建不同支付方式订单总额组件。 选择饼图,拖拽total_money到角度,拖拽pay_type到颜色,调节内径。 修改颜色的标识文字。 将组件拖拽到仪表板。 结果如下:

时至今日,编制与大厂到底怎么选?

我觉得这可能是一个辩论三天三夜也不会有结论的话题。 说实话,2023年已经过去,真的没有感觉赚钱更容易,反而是周边失业的同事不少。 现在感觉,是不是选择早点进入编制可能更加稳定?你们又怎么看?

Java中的多线程

进程和线程的概念 进程是应用程序的执行实例有独立的内存空间和系统资源。 线程是进程中执行运算的最小单位,可完成一个独立的顺序控制流程 一。一个进程可以包含多个线程,每个线程都独立执行特定的任务, 是CPU调度和分派的基本单位。 多线…

【AT 指令开发】软件框架与接口

目录 1 软件逻辑2.代码2.1 at_command.h2.2 at_command.c本文主要用于记录纯MCU无OS下,AT 指令开发软件框架 1 软件逻辑 2.代码 2.1 at_command.h #ifndef AT_COMMAND_H #define AT_COMMAND_Hvoid AT_CMD_Process(uint8_t *uartBuffer, uint8_t dataLen);/*描述AT指令返回值…

第二百五十九回

文章目录 知识回顾示例代码经验总结 我们在上一章回中介绍了MethodChannel的使用方法,本章回中将介绍EventChannel的使用方法.闲话休提,让我们一起Talk Flutter吧。 知识回顾 我们在前面章回中介绍了通道的概念和作用,并且提到了通道有不同的…

PyCharm中配置安装PyQt5、QtDesigner

PyCharm中配置安装PyQt5 使用 pip install PyQt5 命令安装。 安装pyqt5-tools:pip install pyqt5-tools 安装PyQt5Designer:pip install PyQt5Designer 上述三个都安装好之后,输入 pip list 查看一下 有如下内容就安装成功啦!…

四、C++内存管理

1 C/C内存分布 在学习C的内存管理方式之前&#xff0c;我们先来看一道有关C/C内存分布的题目&#xff1a; 阅读下面的代码&#xff0c;回答相关问题&#xff1a; #include <iostream> using namespace std; int globalVar 1; static int staticGlobalVar 1; int main…

1.6计算机网络的性能指标

1.6计算机网络的性能指标 常用的计算机网络的性能指标有7个&#xff1a;速率、带宽、吞吐量、时延、往返时间、利用率、丢包率 1.6.1速率 计算机发送的信号是以二进制数字形式的。一个二进制数字就是一个比特(bit&#xff0c;binary digit)字节:Byte&#xff0c;1Byte8bit(1…

在海绵城市建设中,低功耗遥测终端有哪些独特的优势?

近年来&#xff0c;随着物联网技术的迅猛发展&#xff0c;数据监测和传输已经成为各行各业不可或缺的环节。在诸多特殊环境中因供电问题、潮湿、不便进入等诸多原因&#xff0c;需要一款功耗低、数据传输稳定&#xff0c;防潮抗锈蚀的低功耗遥测终端。 为满足这一需求&#xf…

太强了!腾讯开源!多模态AppAgent自主操作智能手机应用程序!

AppAgent是一款基于大型语言模型&#xff08;LLMs&#xff09;的新型多模态智能代理框架&#xff0c;专为操作智能手机应用而设计。它结合了GPT-4V的先进视觉理解能力&#xff0c;通过“眼睛”观察手机界面&#xff0c;模仿人类的点击和滑动交互方式来学习操作应用程序。这种方…

小红书种草类型有哪些,小红书营销攻略

我们都知道小红书是个内容平台。用户来这可以看到各种类型的笔记&#xff0c;从笔记中获取自己想要了解的内容。这也就意味着平台上有着许多种不同的笔记类型。今天我们和大家分享下小红书种草类型有哪些&#xff0c;小红书营销攻略&#xff01; 1. 明星带货类 顾名思义&#x…

vivado IP Revision Control

2020.2 只需要git 管理 prj.xpr 和 prj.srcs/ https://china.xilinx.com/video/hardware/ip-revision-control.html https://www.xilinx.com/video/hardware/vivado-design-suite-revision-control.html

网络编程的理论基础

文章目录 1 重点知识2 应用层3 再谈 "协议"4 HTTP协议4.1 认识URL4.2 urlencode和urldecode4.3 HTTP协议格式4.4 HTTP的方法4.5 HTTP的状态码4.6 HTTP常见Header4.7 最简单的HTTP服务器 3 传输层4 再谈端口号4.1 端口号范围划分4.2 认识知名端口号(Well-Know Port Nu…

EOCR电机保护器485通讯协议概念

Modbus是由Modicon&#xff08;现为施耐德电气公司的一个品牌&#xff09;在1979年发明的&#xff0c;是全球第一个真正用于工业现场的总线协议。为更好地普及和推动Modbus在基于以太网上的分布式应用&#xff0c;目前施耐德公司已将Modbus协议的所有权移交给IDA&#xff08;In…

IMS中如何区分initial INVITE和re-INVITE?

这里就要先看下Dialog的定义。 dialog是两个UA之间持续一段时间的点对点 SIP关系。dialog通过SIP消息建立&#xff0c;例如对 INVITE request的 2xx response。dialog由Call-ID、local tag和remote tag来区分&#xff0c;也就是Call-ID 、from-tag和to-tag就可以确定一个dialog…

2024年阿里云服务器怎么买便宜?

2024年阿里云服务器租用费用&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、轻量应用服务器2核2G3M带宽轻量服务器一年61元&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;ECS云服务器e系列2核2G配置99元一年、2核4G服务器30元3个月、2核4G配置…

FineBI实战项目一(17):热门商品Top10分析开发

点击新建组件&#xff0c;创建热门商品Top10组件。 选择柱状图&#xff0c;拖拽cnt&#xff08;总数&#xff09;到横轴&#xff0c;拖拽goodName到纵轴。 选择排序规则。 修改横轴和纵轴的标签名称 切换到仪表板&#xff0c;拖拽组件到仪表板 效果如下&#xff1a;

记录汇川:H5U与Fctory IO测试9

主程序&#xff1a; 子程序&#xff1a; IO映射 子程序&#xff1a; 出料程序 子程序&#xff1a; 自动程序 Fctory IO配置&#xff1a; 实际动作如下&#xff1a; Fctory IO测试9

为什么选择CRM系统时,在线演示很重要?

想要知道一款CRM管理系统是否满足企业的需求&#xff0c;操作是否简单&#xff0c;运行是否流畅&#xff0c;最直观的方式就是远程演示。否则&#xff0c;光凭厂商的销售人员介绍一下产品&#xff0c;企业就盲目下单&#xff0c;最后发现功能不匹配&#xff0c;还要赔钱赔时间重…