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的一些参数

 

 

 

猜你喜欢

转载自www.cnblogs.com/binwenhome/p/12897377.html
今日推荐