• Docker的基本使用及DockerFile的编写


    前言:

    最近在准备面试,在复习到Docker相关内容时,想写一些东西分享给大家然后加深一下自己的印象,有了这篇随笔。

    Docker的简介:

    docker从文件系统、网络互连到进程隔离等等,极大的简化了容器的创建和维护,使得Docker技术比虚拟机技术更为便捷、快捷。

    Docker的基本命令:

    #查看docker 本地镜像
    docker images
    # 镜像下载 下载redis最后一个版本镜像
    docker pull redis
    # 删除本地镜像
    docker rmi redis
    # 强制删除本地镜像
    docker rmi -f redis
    # 创建一个名称为myredis的容器 使用的是reids:latest版本镜像
    docker run --name mycentos -d centos:latest
    --name 命名
    -p 80:80 将端口映射出来通过主机ipv4地址:80 可以访问到容器内部
    -v /data:/data 将主机目录/data下的内容映射到容器中/data中
    -i -t 交互式创建容器,容器创建成功后直接进入容器中,可以进入容器的命令行模式
    如:docker -it centos /bin/bash
    -d 后台启动容器,启动一个守护进程
    
    #启动一个容器
    docker start centos
    
    #重启一个容器
    docker restart centos
    
    #停止一个容器
    docker stop centos
    
    #进入容器
    docker exec -i -t centos /bin/bash
    
    #退出容器 
    exit
    
    #查看正在运行的容器容器
    docker ps
    #查看所有创建了的容器
    docker ps -a
    #查看容器日志
    docker logs redis
    参数:
    -f 跟踪日志输出
    -t 显示时间戳
    --tail 列出最新的xx条容器日志
    
    #删除容器
    docker rm centos
    #强制删除容器
    docker rm -f centos
    

    DockerFile的编写:

    在这里我用我以前写过的一个DockerFile文件来做解释。

    下面是Jmeter-base

    FROM openjdk:8-jre-slim
    # 引入java环境 LABEL maintainer
    ='1056285392@qq.com'
    MAINTAINER baijiahei ARG JMETER_VERSION=5.1.1
    #定义一个变量 jmeter版本
    RUN mkdir /jmeter
    # run为执行命令 创建jmeter目录 RUN
    /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
    # 同步本地时间到容器中 WORKDIR jmeter
    # 设置工作目录 # 安装 JMeter ADD .
    /apache-jmeter-5.1.1.tgz ./
    # 添加本地目录文件到镜像中并解压
    RUN apt-get update && apt-get install -y wget && apt-get install -y vim \ && wget -P /jmeter/apache-jmeter-$JMETER_VERSION/lib/ext https://repo.maven.apache.org/maven2/kg/apc/jmeter-plugins-extras-libs/1.4.0/jmeter-plugins-extras-libs-1.4.0.jar \ && wget -P /jmeter/apache-jmeter-$JMETER_VERSION/lib/ext https://repo.maven.apache.org/maven2/kg/apc/jmeter-plugins-standard/1.4.0/jmeter-plugins-standard-1.4.0.jar
    #安装一些插件
    ENV JMETER_HOME /jmeter/apache-jmeter-$JMETER_VERSION/ ENV PATH $JMETER_HOME/bin:$PATH
    #设置环境变量

    下面是Jmeter-slave

    FROM congyiwei/jmeterbase
    LABEL maintainer='1056285392@qq.com'
    MAINTAINER baijiahei
    
    EXPOSE 1099 50000
    # 声明暴露端口
    ENV SSL_DISABLED true # 配置环境变量 将ssl设置为true WORKDIR $JMETER_HOME/bin/ ENTRYPOINT ./jmeter-server \ -Dserver.rmi.localport=50000 \ -Dserver_port=1099 \ -Jserver.rmi.ssl.disable=${SSL_DISABLED} \ -Djava.rmi.server.hostname=${HOST_IP} # salve配置文件修改 CMD [ "./", "/jmeter/apache-jmeter-5.1.1/bin/jmeter-server.sh -Djava.rmi.server.hostname=${HOST_IP}"]
    #容器启动后,启动server

    master就不贴具体内容了,大概思路设置工作空间为jmeter目录,创建test_jmx、report、result等目录,在创建容器时挂在本地目录过去,并进入容器内,去手动指定执行的jmx文件、负载机地址等。

    构建及上传:

    首先我们准备好Dockerfile,进入dokcerfile所在目录中执行命令:

    docker build -t jmeterbase:v1.0 .

    代表使用当前目录下的Dockerfile文件构建一个名叫jmeterbase的镜像,版本号为v1.0, 最后面的 . 

    参数: -f 显示指定构建镜像的 Dockerfile 文件(Dockerfile 可不在当前路径下)

        -t 指定镜像的名字

    最后面的 .   上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。

    在默认情况下,如果不额外指定 Dockerfile 的话,会将上下文目录(Context)下的名为Dockerfile 的文件作为 Dockerfile

    上传:

    1.注册docker hub账户

    2.创建仓库

    3.

    docker login

    输入账户密码

    登录成功后截图:

    # 将生成的镜像打上tag,须要在镜像名称加上Docker hub用户

    docker tag jmeterbase congyiwei/jmeterbase
    # 上传
    docker push congyiwei/jmeterbase
    # 拉取镜像
    docker pull congyiwei/jmeterbase

    上传成功后,可以在dockerhub中查看到:

     下载后可以使用docker images查看:

     

  • 相关阅读:
    解题:NOI 2007 社交网络
    解题:2018九省联考 一双木棋
    125. 背包问题 II
    152. 组合
    140. 快速幂
    148. 颜色分类
    144. 交错正负数
    83. 落单的数 II
    124. 最长连续序列
    59. 最接近的三数之和
  • 原文地址:https://www.cnblogs.com/congyiwei/p/15642444.html
Copyright © 2020-2023  润新知