一、docker的安装与踩坑

目录

  • 一、安装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.mzph.cn/news/618476.shtml

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

相关文章

【WPF.NET开发】WPF中的文档

本文内容 文档类型文档控件和文本布局文档打包XPS 文档 Windows Presentation Foundation (WPF) 提供丰富的文档功能,可创建旨在比前几代 Windows 更易于访问和读取的高保真内容文档。 除增强功能和质量外,WPF 还对文档显示、打包和安全性能提供集成服…

Rockchip | FIQ-Debugger调试工具

FIQ-Debugger fiq debugger是集成到内核中的一种系统调试手段。 FIQ在arm架构中相当于nmi中断,fiq debugger把串口注册成fiq中断,在串口fiq中断服务程序中集成了一些系统调试命令。 一般情况下串口是普通的console模式,在串口工具下键盘输入…

如何再造宇宙厂所有APP?

本文内容,纯属十年老架构师杜撰,切勿照着实操,可能会给你带来几十亿的流量,怕你的服务器扛不住。 1. 破音 前端用uniapp,花800买个短视频应用模板,后端用golang支持高并发, 数据库用图数据库加elastic se…

openssl3.2 - 官方demo学习 - cipher - ariacbc.c

文章目录 openssl3.2 - 官方demo学习 - cipher - ariacbc.c概述笔记END openssl3.2 - 官方demo学习 - cipher - ariacbc.c 概述 ARIA-256-CBC EVP_EncryptInit_x()的区别 EVP_EncryptInit() 参数为ctx, cipher, key, iv EVP_EncryptInit_ex2() 参数为 ctx, cipher, key, iv, …

什么是激励函数?

激励函数(激活函数)在神经网络中扮演着至关重要的角色。它们是用于决定一个神经元是否应该被激活的函数,帮助神经网络学习复杂的模式。激活函数对输入信号进行非线性变换,然后输出到下一层。 不同的激励函数具有不同的数学特性&a…

ArchVizPRO Interior Vol.8 URP

ArchVizPRO Interior Vol.8 URP是一个在URP中制作的建筑可视化项目。这是一个完全可导航的现代公寓,包括一个带开放式厨房的客厅、休息区、两间卧室和两间浴室。从头开始构建每一个细节,这个室内有130多件家具和道具、自定义着色器和4K纹理。所有家具和道具都非常详细,可以在…

aigc 局部动画

ComfyUIAnimateDiffControlNet的Inpainting生成局部重绘动画_哔哩哔哩_bilibili 动图: 【Stable Diffusion】SD生成超稳定丝滑卡通动画(附安装包),一分钟就能搞定动图!小白轻松上手!_哔哩哔哩_bilibili

基于 LangChain+大模型,我打造一款自己的LLM应用

本文共计1.7w字,梳理不易,喜欢点赞、收藏、关注。需要技术交流,可以加入我们 目录 通俗易懂讲解大模型系列技术交流一、LangChain是什么二、LangChain核心组件2.1 Models2.2 Indexes2.2.1 Document Loaders2.2.2 Text Splitters2.2.3 Vectors…

网络安全B模块(笔记详解)- MYSQL信息收集

MYSQL信息收集 1.通过渗透机场景Kali中的渗透测试工具对服务器场景MySQL03进行服务信息扫描渗透测试(使用工具Nmap,使用必须要使用的参数),并将该操作显示结果中数据库版本信息作为Flag提交; Flag:MySQL 5.5.12 2.通过渗透机场景Kali中的渗透测试工具对服务器场景MySQL0…

【光波电子学】基于MATLAB的多模光纤模场分布的仿真分析

基于MATLAB的多模光纤模场分布的仿真分析 一、引言 (1)多模光纤的概念 多模光纤(MMF)是一种具有较大纤芯直径的光纤结构,其核心直径通常在10-50微米范围内。与单模光纤(SMF)相比,…

【基础数据结构】栈和队列

例题1 化栈为队 实现一个MyQueue类,该类用两个栈来实现一个队列。 示例: MyQueue queue new MyQueue(); queue.push(1); queue.push(2); queue.peek(); // 返回 1 queue.pop(); // 返回 1 queue.empty(); // 返回 false说明: 你只能使用标…

Linux QT以太网配置及相关知识

Linux QT以太网配置及相关知识 平台和内容概述安装Qt Creator设计用户界面编辑源代码自定义LineEdit创建槽函数以太网逻辑功能实现静态配置ui逻辑:功能概述代码实现DNS退出程序输入框中的ip规范保存数据和读取数据构建文件编译运行平台注意点开机自动配置以太网总结平台和内容…

FreeRtos Queue (一)

本篇主要讲队列的数据结构和初始化 一、队列的数据结构 二、队列初始化完是什么样子的 队列初始化的函数调用关系:xQueueGenericCreate->prvInitialiseNewQueue->xQueueGenericReset 所以,最终初始化完的队列是这样的 假设申请了4个消息体&…

SQL:一行中存在任一指标就显示出来

当想要统计的两个指标不在一张表中时,需要做关联。但很多情况下,也没有办法保证其中一张表的维度是全的,用left join或right join可能会导致数据丢失。所以借助full join处理。 如,将下面的数据处理成表格中的效果(维…

天下没有免费的午餐:AI技术进步与代价辩证分析

“天下没有免费的午餐”这一经济学原理揭示了在资源有限的世界中,任何收益或优势都必然伴随着相应的成本和牺牲。当我们将这一观点引入人工智能领域时,我们可以深入探讨AI技术的进步与发展所带来的巨大变革背后所隐藏的成本、挑战以及伦理道德问题。 一、…

AI副业拆解:人像卡通化,赋予你的形象全新生命力

大家好我是在看,记录普通人学习探索AI之路。 🔥让你的形象瞬间穿越二次元!🚀人像卡通化,捕捉你的独特魅力,让真实与梦幻在此刻交融。🎨 今天为大家介绍如何免费把人像卡通化--漫画风 https://w…

【征稿进行时|见刊、检索快速稳定】2024年经济发展与旅游管理国际学术会议(ICEDTM 2024)

【征稿进行时|见刊、检索快速稳定】2024年经济发展与旅游管理国际学术会议(ICEDTM 2024) 2024 International Conference Economic Development and Tourism Management(ICEDTM 2024) 一、【会议简介】 ICEDTM 2024将围绕"旅游管理”“经济发展”的最新研究领域&#xff…

大模型开启应用时代 数钉科技一锤定音

叮叮叮叮!数钉智造大模型,“定音”强势发布! 随着科技的飞速发展,大模型技术已逐渐成为推动产业变革的核心力量。在这一浪潮中,数钉科技凭借深厚的技术积累和敏锐的市场洞察力,成功利用大模型技术搭建起智能…

<蓝桥杯软件赛>零基础备赛20周--第13周--DFS剪枝

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周。 在QQ群上答疑&#x…

在ubuntu上的18个非常实用的命令行工具软件

使用Ubuntu的过程中,在终端上使用命令行工具是非常常见的事情,熟练地掌握命令行工具是使用ubuntu必不可少的技能,即便是Ubuntu的初学者,通常也很熟悉诸如ls、rm、cp等一些文件操作工具,当浏览/bin目录时,你…