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

一、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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值