docker

作者: 我是啵啵 | 来源:发表于2019-10-30 11:33 被阅读0次

    核心概念

    • docker主机
    • docker客户端
    • docker 仓库 保存打包好的软件镜像
    • docker 镜像 就是创建docker容器的docker模板
    • docker 容器 就是一个或者一组应用

    使用步骤

    安装
    yum install docker
    启动
    systemctl start docker
    查找
    docker search mysql
    在dockerhub 上找
    下载
    docker pull mysql
    就是查看是否有安装包
    docker images
    就是安装软件
    docker pull mysql:5.5
    卸载
    docker rmi 镜像id
    用docker images 找
    
    

    容器操作

    搜索镜像
    下载
    创建容器
    systemctl status docker 看服务的状态
    docker --help
    进入容器
    docker exec -it mycentos2 /bin/bash

    启动镜像
    docker run --name -d image-name
    docker run --name mytomcat -d tomcat:latest
    查看运行中的容器
    
    查看已经运行的程序
    docker ps 
    -a 
    查看已安装的程序
    停止
    docker stop 容器id
    id用docker ps -a 查看所有
    docker start  容器id
    删除
    docker rm 容器id
    docker run -d -p 8888:8080
    前面是主机端口 后面 容器端口
    linux 
    防火墙状态
    service firewalld status
    关闭防火墙
    service firewalld stop 
    docker logs 容器id
    
    

    mysql

    $ docker run -p 3306:3306 --name mysql01 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
    

    在后面还可以加上服务器属性

    启动容器

    docker start mysql01

    大数据

    /bin/bash XXXX.sh
    运行大数据安装平台脚本

    • 进入容器名字为 spark-master
      的平台
      docker exec -it spark-master bash
    • 列出大数据节点
      yarn node --list
    • 看当前节点的进程
      jps
    • 登陆到某个节点(slave1)
      ssh hadoop-slave1 -------通过yarn node --list 看到的

    docker之梦学谷

    解决的问题
    在我这台电脑上能跑起来 在别的电脑上也能跑起来 就是 可以将你的环境也打包
    打包环境就是打包镜像
    打包的东西成集装箱 只要操作系统安装了docker 就能运行哪个集装箱 就是已经配好的环境

    • docker 运行在操作系统内核之上 是隔离离进程
    • 虚拟机则是运行在虚拟出来的物理硬件之上 是隔离操作系统

    centos版本要求
    uname -r
    3.1
    镜像就是模板文件

    image.png
    改镜像
    按照阿里云上的提示走
    docker pull tomcat 
    docker rmi +id 名 
    

    容器操作

    5.2.1 创建容器命令 
     
    创建容器 [OPTIONS] 常用的参数说明:
     -i 表示交互式运行容器(就是创建容器后,马上会启动容器,并进入容器 ),通常与-t 同时使用 。
     -t 启动后会进入其容器命令行, 通常与 -i 同时使用; 加入 
    -it 两个参数后,容器创建就能登录进去。即 分配一个伪终端。
     --name 为创建的容器指定一个名称 。
     -d 创建一个守护式容器在后台运行,并返回容器ID; 这样创建容器后不会自动登录容器,如果加-i参数,创建后就会运行容器。
     -v 表示目录映射, 格式为:
    -p 宿主机目录:容器目录 注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。 
    -p 表示端口映射,格式为:-p 宿主机端口:容器端口
      5.2.2 交互式容器 
    说明: 就是创建容器后,马上会启动容器,并进入容器 
    
    1. 创建一个交互式容器并取名为 mycentos, ( /bin/bash 是linux中的命令解析器,会进入到容器里面命令行)
     
    上图显示,已经进入容器中(上面主机名变成了容器实例编号 )
    2. 新开一个 shell 窗口,这时我们通过 docker ps 命令查看,发现可以看到启动的容器,状态为 Up 启动状态
     
    3. 新开一个 shell 窗口,再创建一个 mycentos1 容器(注意:docker 命令是不能在容器里面使用)
     
    docker pull centos:7
    docker run [OPTIONS] 镜像名:标签名
    docker run -it --name=mycentos centos:7 /bin/bash
    docker run -it --name=mycentos1 centos:7 /bin/bash
    1
    1
    

    启动或者停止多个容器
    docker ps -a -q
    查出来容器id
    docker start ``docker ps -a -q``
    docker kill +容器id

    创建守护容器
    docker run -id --name=mycentos2 centos:7 /bin/bash

    进入守护式容器
    docker exec -it mycentos2 /bin/bash
    这里要用 /bin/bash 要用这个命令来启动

    注意:交互式容器通过 docker exec 进入容器后,使用 exit 也一样的只退出但不停止容器

    拷贝

    往里往外
    docker cp 要拷贝的宿主机文件或目录 容器名称:容器文件或目录

    docker cp 容器名称:要拷贝的容器文件或目录 宿主机文件或目录

    挂载

    docker run -id -v /宿主机绝对路径目录:/容器内目录 --name=容器名 镜像名

    容器细节

    docker inspect mycentos2

    实战

    mysql5.7
    拉取
    docker pull mysql:5.7
    运行:
    docker run -id --name=mxg_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
    登陆:
    docker exec -it mxg_mysql /bin/bash
    redis
    docker pull redis
    docker run -id --name=mxg_redis -p 6379:6379 redis

    image.png

    rabbitmq
    docker pull rabbitmq:management
    docker run -id --name=mxg_rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
    http://192.168.10.11:15672

    image.png

    备份和迁移

    打包没有目录映射
    docker commit mxg_tomcat new_tomcat:1.1
    就是 复制过去

    打包镜像
    docker save -o mycentos.tar mycentos_new:1 给别人用 还要把数据打包给别人 通过cp 的方式回复数据

    恢复
    docker load -i xxx.jar

    dockerfile

    层级打包
    注意 他自己解压不出来 我是自己解压解决的


    image.png

    相关文章

      网友评论

          本文标题:docker

          本文链接:https://www.haomeiwen.com/subject/gpzimctx.html