Docker常用命令分享(Docker安装MySQL)

2023-11-17

一、Docker是什么?

Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 OverlayFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 版本开始,则进一步演进为使用 runC 和 containerd。

镜像:

Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。

容器:

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。也因为这种隔离的特性,很多人初学 Docker 时常常会混淆容器和虚拟机。

仓库:

镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。一个 Docker Registry 中可以包含多个 仓库(Repository);每个仓库可以包含多个 标签(Tag);每个标签对应一个镜像。
在这里插入图片描述

二、常用命令

  1. 拉取镜像

    docker pull mysql:8.0
    
  2. 查询镜像列表

    docker images
    
  3. 删除镜像

    docker rmi mysql:8.0
    
  4. 运行容器(配置文件在第三步)

    docker run --restart=always \
    --name mysql \
    --privileged=true \
    -v /data/mysql/conf:/etc/mysql/conf.d \
    -v /data/mysql/data:/var/lib/mysql \
    -v /data/mysql/log:/var/log \
    -v /data/mysql/mysql-files:/var/lib/mysql-files \
    -p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD='123456' \
    -d mysql:8.0
    

    运行参数:

    • –restart=always:docker运行后自动启动
      • no:容器退出时不重启
      • on-failure:容器故障退出(返回值非零)时重启
      • always:容器退出时总是重启
    • –name:指定容器名字,后续可以通过名字进行容器管理
    • –privileged=true
      • privileged关键字是docker 0.6版本中引入
      • 使用该参数container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限。
      • privileged启动的容器,可以看到很多host上的设备,且可以执行mount
      • 用于Docker应用容器获取宿主机root权限(特殊权限),如:挂载目录时,需要加入此关键字
    • /v:映射宿主机资源到容器内部
    • -p:指定宿主机端口号和容器内部端口号(宿主机:容器内部)
    • -e:指定环境变量,容器中可以使用该环境变量
    • -d:指定镜像
    • -net=“bridge”, 容器网络设置:
      • bridge 使用docker daemon指定的网桥
      • host //容器使用主机的网络
      • container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源
      • none 容器使用自己的网络(类似–net=bridge),但是不进行配置
  5. 查询正在进行的容器

    docker ps
    
  6. 查询所有容器

    docker ps -a
    
  7. 启动容器

    docker start mysql
    
  8. 停止容器

    docker stop mysql
    
  9. 重启容器

    docker restart mysql
    
  10. 删除容器

    docker rm mysql
    
  11. 强制删除正在运行的容器

    docker rm -f mysql
    
  12. 查询容器运行日志

    docker logs -f mysql
    
  13. 进入容器内部

    docker exec -it mysql bash
    

三、MySQL配置文件

mkdir -p /data/mysql/conf
touch my.cnf
vim my.cnf

[mysql]
#设置mysql客户端默认字符集
default-character-set=UTF8MB4
[mysqld]
#设置3306端口
port=3306
#允许最大连接数
max_connections=200
#允许连接失败的次数
max_connect_errors=10
#默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=UTF8MB4
#开启查询缓存
explicit_defaults_for_timestamp=true
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#等待超时时间秒
wait_timeout=60
#交互式连接超时时间秒
interactive-timeout=600
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker常用命令分享(Docker安装MySQL) 的相关文章

  • 对于数据库来说,选择正确的数据类型会影响性能吗?

    如果是这样 为什么 我的意思是 tinyint 的搜索速度比 int 快吗 如果是这样 性能上的实际差异是什么 是的 根据数据类型 它确实有所不同 int vs tinyint不会在速度上产生明显的差异 但会在数据大小上产生差异 假设tin
  • 使 pdo::query 静态

    当我运行下面的代码时出现此错误 我通常使用 msql 函数 但我尝试使用 PDO 代替 怎么了 致命错误 第 14 行无法静态调用非静态方法 PDO query
  • Nextjs 无法在生产环境中的“.next”目录中找到有效的构建

    我正在 docker 中运行我的应用程序 但我的生产构建和启动脚本仅在 docker 环境中失败 虽然node env开发在docker环境下运行良好 这是我的脚本 无法进行生产构建并启动服务器 我正在使用nodemon和babel bui
  • 为什么 MySQL 创建带有 _seq 后缀的表?

    我创建了一个 InnoDB 表 名为foo在 MySQL 中 一旦我对表执行插入操作 我就会看到另一个表foo seq被建造 如果我删除自动生成的表 它会在下一次插入后出现 是什么原因造成的 听起来像是正在创建一个序列 您是否有自动生成的主
  • 无法启动 MySQL 服务器 - 控制进程退出并出现错误代码

    我的 mysql 服务器停止后无法启动 命令使用 sudo etc init d mysql restart Error 重新启动 mysql 通过 systemctl mysql serviceJob for mysql service
  • 如何使用 MySQL 的 LOAD DATA LOCAL INFILE 在导入 CSV 时将字符串日期更改为 MySQL 日期格式

    我正在使用 MySQL 的 LOAD DATA LOCAL INFILE SQL 语句将数据从 CSV 文件加载到现有数据库表中 下面是一个 SQL 语句示例 LOAD DATA LOCAL INFILE file csv INTO TAB
  • 无法使用 docker build 运行 gradle 包装器

    我有这个小构建 FROM eclipse temurin 17 jdk as build java COPY java project root project WORKDIR root project RUN chmod x gradle
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • 截断 Mysql 表 Cron 作业?

    我在如何使用 cron 作业截断 Mysql 表时遇到了一些麻烦 无论我尝试什么 我似乎都无法让数据库清除表格 感谢您的帮助 mysql uderp example pexample hlocalhost Dexample e TRUNCA
  • 如何正确转义mysql?

    我刚刚发现如果我写 select from tbl where name like foo 然后添加 foo 作为参数及其值 a 用户数据 它不会正确转义 我勒个去 它想要 a 即使我使用参数 我还是忍不住觉得我对 sql 注入持开放态度
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • Docker Compose 无法连接到数据库

    我使用 Nestjs 作为后端 并使用 typeorm 作为 ORM 我尝试在 docker compose 文件中定义我的数据库和应用程序 如果我将数据库作为容器运行 并从本地计算机运行应用程序 那么它运行良好 我的程序连接并创建表等 但
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • gem install mysql:无法构建 gem 本机扩展 (Mac Lion)

    我为 Mac OS X Lion 安装了 MySQL 5 5 27 来自 dmg 现在我尝试安装 mysql gem gem install mysql Building native extensions This could take
  • Mysql 将 int 转换为 MAC

    我有一些数据可以转换 其中有 2 列 其中一列有 IP 它包含整数值 我在 mysql 查询中使用了以下函数 是否有一个函数可以用来转换我的 mac 列 其中包含整数和数据类型是bigint to MAC地址 SELECT INET NTO
  • 如何将ElasticSearch与MySQL集成?

    在我的一个项目中 我计划将 ElasticSearch 与 MySQL 结合使用 我已经成功安装ElasticSearch 我可以单独管理ES中的索引 但我不知道如何用 MySQL 实现同样的功能 我读过一些文件 但我有点困惑 没有明确的想
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希

随机推荐

  • 在Visual Studio上开启自己的C++学习之旅

    目录 0 引言 1 本教程使用到的相关软件或产品 2 下载及安装Visual Studio 2 1 创建符号链接 2 2 安装Visual Studio 2 2 1 补充 3 创建并运行自己的第一个C 程序 0 引言 在学习一门编程语言之前
  • [940]TensorFlow练习4: CNN, Convolutional Neural Networks

    Convolutional Neural Networks翻译为卷积神经网络 常用在图像识别和语音分析等领域 CNN详细介绍参看 https en wikipedia org wiki Convolutional neural networ
  • 太原理工大学c语言期末试卷及答案,太原理工大学人工智能复习题 试题 答案概要...

    任务有何不同 6 5 基于规则的专家系统是如何工作的 其结构为何 6 6 基于框架的专家系统与面向目标编程有何关系 其结构有何特点 其设计任务是什 么 6 7 为什么要提出基于模型的专家系统 试述神经网络专家系统的一般结构 6 8 新型专家
  • 在区块链的世界里,美国CFTC希望成为一个节点

    在华盛顿参与一场区块链峰会时 CFTC 美国商品期货交易委员会 主席J Christopher Giancarlo发表了题为 数字三要素 技术 监管和市场 的演讲 Giancarlo在演讲中提到了区块链技术的应用可能 认为如果2008年经济
  • Component name “Nearby“ should always be multi-word. 的原因

    很好奇在ESlint规范中为啥要求component的name不能是单个单词 除了App外 呢 查阅官方文档得知 This rule require component names to be always multi word excep
  • spring控制反转与依赖注入

    1 什么是控制反转 传统的编程思路是 当我需要某个对象时 我便自己去实例化调用它 而控制反转则是 当我需要某个对象时 自然有人帮我们实例化它 简单的来说 这是一种衣来张口 饭来伸手式的控制模式 这也符合spring最根本的使命 简化java
  • 基于Java开发一套完整的区块链系统

    一 区块链技术理论基础 1 基本概念 1 区块链 从技术层面来看 区块链是由包含交易信息的区块按照时间顺序从后向前有序链接起来的数据结构 从应用层面来说 区块链是一个分布式的共享账本和数据库 具有去中心化 不可篡改 全程留痕 集体维护 公开
  • 删除计算机用户时拒绝访问权限,c盘为什么拒绝访问 删除c盘文件需要管理员权限怎么办...

    c盘是电脑中的关键位置 存储着很多系统重要文件 如果电脑出问题一般就是c盘中的文件异常 近日有小伙伴出现这样一个问题 打不开c盘显示拒绝访问 作为计算机的主人被无法访问 这种问题该怎么解决呢 其实很简单 只要找准方向就可以迎刃而解 下面小编
  • 8月热门论文丨AI Agent会是大模型的未来发展方向吗?

    过去的8月 如果让我用一个词来总结 那就是 Agent 大模型的下半场已经拉开序幕 大厂们都纷纷表态入局 Agent OpenAI创始成员Andrej Karpathy表示相比大模型 OpenAI内部目前已经关注Agent领域 亚马逊也宣布
  • 13:js逆向-登录加密(aes加密)

    post请求 请求头信息被加密 response返回数据被加密 1 首先搞请求头data加密 还是直接搜索 搞定加密的参数 f body loginMethod 1 name 17756236589 password 132456789 h
  • wpf解决方案

    Wpf部分 1wpf textbox 显示和隐藏 personq Visibility Visibility Visible 这样显示 personq Visibility Visibility Hidden 这样隐藏 2 wpfradio
  • Linux笔记之安装配置nginx的两种方式——yum安装和源码安装

    安装配置nginx的两种方式 yum安装和源码安装 访问nginx的官方网站 http www nginx org Nginx版本类型 Mainline version 主线版 即开发版 Stable version 最新稳定版 生产环境上
  • Cannot run program “D:\jdk8\bin\java.exe“ (in directory “C:\Users\Administrator\AppData\Local\JetBra

    bug笔记 项目场景 运行main方法 Cannot run program D jdk8 bin java exe in directory C Users Administrator AppData Local JetBrains In
  • 蓝桥杯真题 杨辉三角形 python

    专栏 蓝桥杯题目 目录 问题描述 输入格式 输出格式 样例输入 样例输出 评测用例规模与约定 省流版本 题目解析 综上所述 写成代码如下所示 问题描述 下面的图形是著名的杨辉三角形 如果我们按从上到下 从左到右的顺序把所有数排成一列 可以得
  • Unity入门教程

    Unity入门 Unity脚本基础 Unity脚本基本规则 Unity脚本生命周期函数 Inspector窗口可编辑的变量 Mono中的重要内容 Unity重要组件和API 最小的单位GameObject 时间相关Time 1 时间缩放比例
  • 浅谈编程职业的乐趣和苦恼

    乐趣 编程为什么有趣 作为回报 它的从业者期望得到什么样的快乐 首先 这种快乐是一种创建事物的纯粹快乐 如同小孩在玩泥巴时感到快乐一样 成年人喜欢创建事物 特别是自己进行设计 我想这种快乐是上帝创造世界的折射 一种呈现在每片独特的 崭新的树
  • SpringCloud 商城系统搭建之eureka

    项目环境 1 IDE eclipse maven 2 操作系统 win10 3 jdk 1 8 4 springboot 2 1 0 RELEASE springcloud Greenwich SR5 SpringCloud对应Spring
  • BIG DATA 神奇的大数据 - HDFS分布式文件系统

    目录 自说 学习路径 基本概念 块 优劣 结构 读写流程 使用 命令行接口 自说 HDFS在Hadoop起到重要作用 解决了大规模的数据存储及管理问题 呢么有如此庞大的数据 hdfs是如何准确的做到数据的保存与不流失性 又是通过什么方式去存
  • iqoo手机可以刷鸿蒙系统吗,华为老机型可以更新鸿蒙系统么-华为哪些老机型支持鸿蒙系统...

    目前由于华为鸿蒙系统发布的火爆 导致花粉俱乐部直接崩溃 那么鸿蒙系统除了支持当下的旗舰机外 还支持老机型么 小编就为大家 带来了相关说明 华为老机型可以更新鸿蒙系统么 可以 据小编得到的消息 鸿蒙系统将会支持百万老机型 更新 不要错过了 华
  • Docker常用命令分享(Docker安装MySQL)

    一 Docker是什么 Docker 使用 Google 公司推出的 Go 语言 进行开发实现 基于 Linux 内核的 cgroup namespace 以及 OverlayFS 类的 Union FS 等技术 对进程进行封装隔离 属于