简介
Docker 是基于Go语言实现的开源容器项目。利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化。它是内核级的虚拟化。期望达到使项目运行环境一次封装,到处运行的目的
利用docker创建的运行环境叫做docker容器,容器是通过docker镜像创建的,docker镜像文件可以放在私有仓库中也可以放在共有仓库中。最大的公有仓库是官方Docker Hub

docker安装及启动

#安装docker
yum install docker
#查看版本验证是否安装成功
docker -v  或 docker --version
#启动docker
service docker start
#关闭docker
service docker stop
#重启docker
service docker restart 

docker基本操作命令(安装mysql演示)

  • 首先启动docker
    service docker start

  • 下载镜像
    docker pull mysql
    默认获取最新版本,即TAGlatest的,如果要获取其他版本(例如5.6),则需要使用 docker pull mysql:5.6在这里插入图片描述

  • 列出所有镜像
    docker images
    在这里插入图片描述

  • 启动镜像
    docker run --name myMysql -e MYSQL_ROOT_PASSWORD=sgcc -d -i -p 3306:3306 mysql
    --name指定容器的名字 这里设置的名字为myMysql 最后的mysql表示要运行的镜像名字 有tag的加上tag 如 mysql:5.6 默认为latest,可以省略.
    -e设置环境变量,这里设置密码为sgcc
    -d 后台运行
    -p 3306:3306 端口映射,容器内部端口(:后面)映射到主机的端口(:前面)
    -i 以交互模式运行容器在这里插入图片描述

  • 查看存在的容器信息
    docker ps -a
    不加 -a 仅列出正在运行的
    在这里插入图片描述

  • 进入到容器内部进行操作
    docker exec -it myMysql /bin/bash
    在这里插入图片描述

  • mysql远程连接授权
    登录mysql 使用设置的密码sgcc
    mysql -uroot -p
    在这里插入图片描述
    授权
    grant all privileges on *.* to 'root'@'%' with grant option;
    mysql 8.0以上用这个语句授权 无需 identified BY ‘密码’
    mysql 8.0以前用下面这个语句授权
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified BY 'sgcc' WITH GRANT OPTION;

    测试连接(8.0以上会出现这样 需要修改密码)
    在这里插入图片描述
    查看用户信息
    select host,user,plugin,authentication_string from mysql.user;
    备注:host为 % 表示不限制ip , localhost表示本机使用 , plugin非mysql_native_password 则需要修改密码
    在这里插入图片描述
    修改密码授权(后面root表示自己更改的密码)
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
    flush privileges;

    再次连接测试成功
    在这里插入图片描述

  • 生成新的镜像
    docker commit myMysql huangyzx/mysql:v8
    我们修改配置什么的可以生成一个新的镜像
    在这里插入图片描述

  • 提交本地镜像到https://cloud.docker.com/上去
    docker push huangyzx/mysql
    注: 先登录 docker login
    在这里插入图片描述
    注:docker commit myMysql huangyzx/mysql:v8 huangyzx/mysql:v8 镜像名里面包含了 我注册的账户名huangyzx,这里需要一致,否则无法push

  • 启动/停止/重启 容器
    docker start/stop/restart myMysql myMysql为容器名 也可以是容器id
    在这里插入图片描述

  • 删除容器(保证是停止状态)
    docker rm myMysql myMysql 是容器名 也可以是容器id
    在这里插入图片描述

  • 删除镜像
    docker rmi mysql:v8.0 mysql:v8.0 容器的repository:tag 也可以是image id 在这里插入图片描述
    注:需要先删除镜像中的容器,再删除该镜像,相同imgage id 根据repository:tag

Logo

更多推荐