美文网首页
Docker实践应用及构建

Docker实践应用及构建

作者: 成吉思喵 | 来源:发表于2019-02-24 20:31 被阅读0次

    Docker简介:

    可以理解成一个“应用程序化的虚拟机”。我们如果把虚拟机比喻成公寓的一个个房间(公寓每个房间都有浴室(IO)),docker就相当于太空舱,所有人共享大厅,浴室(系统IO)等资源,但是每个人又有自己的房间(各自的项目环境),互不影响。Docker可以节省大量的磁盘空间以及其他系统资源,运行起来也快得多。

    应用:

    实现操作:比如说我的JAVA程序需要配置JAVA JDK,Tomcat等环境,我可以把我的环境打包成一个简单的镜像。镜像是从docker官网仓库上Push下来的一个Liunx系统,我可以将镜像打开(转化为容器),然后在这上面用命令行,或者用构建文档在上面添加我的JDK等,最后又可以将容器转化成镜像,保存在dockerhub仓库里(功能类似GitHub仓库)。总结起来就是,我做成了一个(迷你linux+ 项目环境+ 项目的Docker镜像)保存在DockerHub。

    操作用途:Github可以和其他工具搭配做成持续集成,docker可以用于持续交付。例如一个测试,用户等需要使用我的软件或者服务器,他可以下载一个Docker,把我的镜像Push下来,我的运行环境已经部署好了,他直接用docker打开就可以运行我部署在上面的软件了。不需要在主机上配置其他的环境。

    交付功能:

    当我的软件或者项目或者环境有改动,用户或者测试师只要基于以前的镜像push最新的功能模块就可以运行新版软件了。因此,docker可以理解是用作持续交付高延展,可伸缩性强的项目工具。

    ● Docker可以通过端口映射,并与主机共享IP

    ● Docke是无状态化的,一般数据库不建议放在容器里,防止容器中断,迭代,等情况丢失数据

    目前使用原因:

    ● 不同环境沙盒化:比如我的系统同时需要JAVA7 与JAAV8;

    ● 快速开发交付,环境配置

    ● 服务器迁移

    构建:

    对于新手而言,个人建议自己先pull一个原始的ubuntu镜像自己构建,当然用Dockfile也是可以的,不过自己从0开始构建当然会更熟悉一点。

    步骤:
    ● 先pull一ubuntu系统:docker pull ubuntu
    系统会自动选择最新镜像版本
    ● 安装JAVA 1.8:安装ppa:
    ● 输入命令:sudo add-apt-repository ppa:webupd8team/java
    ● 输入命令:sudo apt-get update
    安装jdk
    ● 输入命令:sudo apt-get install oracle-java8-installer
    验证安装是否成功:
    ● java -version

    JAVA 环境变量:
    编辑/etc/profile文件,在文件末尾添加如下3行:
    export JAVA_HOME=/usr/lib/jvm/java-8-oracle(注意:java-8-oracle以文件目录名为准)
    export JRE_HOME=/usr/lib/jvm/java-8-oracle/jre
    export PATH={JAVA_HOME}/bin:PATH
    保存,执行:
    source /etc/profile 让文件生效

    打包:

    docker commit 容器ID 打包后镜像名:版本号
    docker commit -a "runoob.com" -m "my apache" 容器名称或id 打包的镜像名称:标签
    OPTIONS说明:
    -a :提交的镜像作者;
    -c :使用Dockerfile指令来创建镜像;
    -m :提交时的说明文字;
    -p :在commit时,将容器暂停。
    使用docker tag 命令为本地镜像添加新的标签
    改变镜像标签: docker tag image1:latest(本地镜像)rhl/image1:latest(新添加的镜像)

    最好的方法是docker commit --help 将会打印出命令行参数和解释,博客的内容各种都有

    启动和部署:

    ● 查看自己所有的镜像 :docker images 将会出现自己的镜像名和ID
    ● 启动: docker run -it -v /usr/data:/data -p 80:80 restart=always [镜像ID] bash
    参数介绍:
    ● -v 服务器存放mongdb的文件目录:docker容器中存放 的目录,做出相应的映射,将data数据存储在服务器中
    ● -P 服务器端口的映射

    相关文章

      网友评论

          本文标题:Docker实践应用及构建

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