• SpringBoot05-Docker


    简介

    1. Docker是一个开源的应用容器引擎, 一种轻量级容器技术.
    2. Docker可以让开发者打包他们的应用以及依赖包到一个轻量级, 可移植的容器中, 然后发布到任何流行的Linux机器上, 当然也可以实现虚拟化.
    3. Docker支持将软件编译成一个镜像, 然后在镜像中把各种软件配置好, 将镜像发布出去, 其他使用者可以直接使用这个镜像. 
    4. 运行中的这个镜像称为容器, 容器是完全使用沙箱机制, 相互之间不会有任何接口, 更重要的是容器性能的开销极低.

    核心概念

    1. Docker主机(host): 安装了Docker程序的机器, 用来用来执行容器和Docker守护进程.
    2. Docker客户端(Client): 连接Docker主机来进行操作.
    3. Docker镜像(Images): 创建Docker容器的模板(软件打好包就成镜像)
    4. Docker仓库(Registry): 用来保存各种打包好的软件镜像.
    5. Docker容器(Container): 镜像启动后的实例称为一个容器.容器是独立运行的一个或一组应用.
    • 使用Docker的步骤
      1. 安装Docker
      2. 去DockerZ仓库找到这个软件对应的镜像.
      3. 使用Docker运行这个镜像, 这个镜像就会生成一个Docker容器.
      4. 对容器的启动停止, 就是对软件的启动停止.

    Docker的安装

    1. 步骤
      1. 检查内核版本, 必须是3.10及以上
        • uname -r
      2. 安装Docker
        • yum install docker
      3. 启动Docker
        • systemctl start docker
          如果启动不了, 报错: Job for docker.service failed because the control process exited with error code. 
          See "systemctl status docker.service" and "journalctl -xe" for details.
          大概率是linux内核版本太低造成的. 1.卸载docker 2.更新内核: sudo yum update 3.重新安装docker即可
      4. 检查版本
        • docker -v
      5. 设置开机启动docker
        • systemctl enable docker
      6. 停止docker
        • systemctl stop docker

    Docker修改源

    1. 不修改源的话, 超级慢的速度让人心态崩溃.
    2. 步骤
      1. cd /etc/docker 进入配置目录.
      2. 打开 daemon.json, 若没有就新建一个.
      3. 配置以下内容
          {
              "registry-mirrors":["https://almtd3fa.mirror.aliyuncs.com"]
          }
      4.保存并退出
      5.之后重启docker: service docker restart

    Docker常用命令&操作

    1. 镜像操作
      1. 检索
        • docker search 关键字.
      2. 拉取
        • docker pull 镜像名:tag
        • tag可选, 标识标签, 为软件版本, 默认是latest
      3. 查看本地镜像
        • docker images
      4. 删除镜像
        • docker rmi 镜像id
    2. 容器操作
      1. 软件镜像 -> 运行镜像 -> 产生容器
      2. 运行镜像
        • docker run --name 名字 -d 镜像名:tag
        • --name 自定义容器名
        • -d: 后台运行
          docker run --name mytomcat -d tomcat:jdk8
      3. 查看运行的容器
        • docker ps
      4. 停止运行中的容器
        • docker stop 容器id/容器名
      5. 查看所有容器(运行的和停止的)
        • docker ps -a
      6. 启动容器
        • docker start 容器id
      7. 删除一个容器
        • docker rm 容器id
      8. 启动一个做了端口映射的tomcat
        • docker run -d -p 8888:8080 tomcat:jdk8
        • -p: 把主机的端口映射到容器端口(主机端口:容器内端口)
          这里访问tomcat首页出现404错误
          原因是新版的tomcatwebapp目录为空

     Mysql举例

    1.  docker pull mysql
    2. 错误的启动
      docker run --name mysql01 -d mysql
      
      错误日志:
          error: database is uninitialized and password option is not specified 
          You need to specify one of MYSQL_ROOT_PASSWORD, 
          MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
    3. 正确的启动
      docker run -p 3406:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=root -d mysql
    4.  高级操作
      docker run --name mysql03 -v /conf/mysql:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
      //把主机的/conf/mysql文件挂载到mysql docker容器的/etc/mysql/conf.d文件夹里.
      //这样启动mysql就会按照我们的配置文件(在/conf/mysql)启动.
      
      docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci //指定mysql的一些参数

     

     

     

  • 相关阅读:
    Html-Css 从入门到放弃(一)基础知识
    PHP7 学习笔记(十)会话控制
    Redis模块学习笔记(一)RediSearch简单使用
    PHP7 学习笔记(九)phpsize动态编译openssl扩展 (微信公众平台)
    Git与GitHub学习笔记(五)一次提交失败的记录
    PHP7 学习笔记(八)JetBrains PhpStorm 2017.1 x64 MySQL数据库管理工具的使用
    PHP7 学习笔记(七)如何使用zephir编译一个扩展记录
    阿里云(四)Linux 实例常用内核网络参数介绍与常见问题处理
    阿里云(三)安全组
    流媒体技术学习笔记之(十七)FFmpeg 3.3《希尔伯特》-新版本的亮点
  • 原文地址:https://www.cnblogs.com/binwenhome/p/12897377.html
Copyright © 2020-2023  润新知