6-使用Docker构建服务

使用Docker构建服务

6.1 构建第一个应用

  1. 构建Jekyll基础镜像

    mkdir Jekyll

    cd Jekyll

    vi Dockerfile

    将链接中的代码复制到Dockerfile

  2. 构建Apache镜像

    mkdir Apache

    cd Apache

    vi Dockerfile

    将链接中的代码复制到Dockerfile

  3. 启动Jekyll网站

    3.0 创建实例Jekyll博客

    cd $HOME
    
    git clone https://github.com/jamtur01/james_blog.git
    

    3.1 创建Jekyll容器

    sudo docker run -v /home/tianpeng/james_blog:/data/ --name james_blog jamtur01/jekyll
    

    注:启动的新容器,把本地的james_blog目录作为/data/卷挂载到容器里
    

    3.2 创建Apache容器

    sudo docker run -d -P --volumes-from james_blog jamtur01/apache
    
    注:
        a. 新标志--volumes-from把指定容器里的所有卷都加入新创建的容器里;
        b. 这就意味着,新建的Apache容器可以访问之前创建的james_blog容器里的/var/www/html卷中存放的编译后的Jekyll网站;
        c. 即便james_blog容器没有运行,Apache容器也可以访问这个卷。
    

    3.3 解析Apache容器端口

    sudo docker port xxxx 80
    

    3.4 浏览网站

    localhost:32768
    

  4. 更新Jekyll网站

    4.1 修改本地目录中的james_blog文件夹下的_config.yml文件

    4.2 再次启动james_blog容器

    sudo docker start james_blog
    

    4.2 重新加载网站

  5. 备份Jekyll卷

    5.1 备份/var/www/html卷(容器的工作目录)

    cd james_blog
    

    5.2 查看备份文件(压缩包)

    注:该tar文件包含了/var/www/html目录里所有的内容。
    

6.2 使用Docker构建一个Java应用服务

  1. WAR文件的获取程序

    mkdir fetcher

    cd fetcher

    touch Dockerfile

    将链接中的代码复制到Dockerfile

    sudo docker build -t jamtur01/fetcher .

  2. 获取WAR文件

    2.1 获取一个示例文件来启动新镜像

    2.2 查看示例里的卷

  3. Tomcat7应用服务器

    mkdir tomcat7

    cd tomcat7

    touch Dockerfile

    将链接中的代码复制到Dockerfile

    sudo docker build -t jamtur01/tomcat7 .

  4. 运行WAR文件

    sudo docker run –name sample_app –volumes-from sample -d -P jamtur01/tomcat

    查找Tomcat应用的端口:sudo docker port sample_app 8080

    在浏览器上浏览应用

  5. 基于Tomcat应用服务器的构建服务(安装TProv出现问题)

6.3 多容器的应用栈

  1. Node.js镜像

    mkdir nodejs

    cd nodejs

    mkdir -p nodeapp

    cd nodeapp

    wget https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/6/node/nodejs/nodeapp/package.json

    wget https://raw.githubusercontent.com/jamtur01/dockerbook-code/master/code/6/node/nodejs/nodeapp/server.js

    cd ..

    vi Dockerfile

    将链接中的代码复制到Dockerfile

    sudo docker build -t jamtur01/nodejs .

  2. Redis基础镜像

    mkdir redis_base

    cd redis_base

    vi Dockerfile

    将链接中的代码复制到Dockerfile

    sudo docker build -t jamtur01/redis .

  3. Redis主镜像

    mkdir redis_primary

    cd redis_primary

    vi Dockerfile

    将链接中的代码复制到Dockerfile

    sudo docker build -t jamtur01/redis_primary .

  4. Redis副本镜像

    mkdir redis_replica

    cd redis_replica

    vi Dockerfile

    将链接中的代码复制到Dockerfile

    sudo docker build -t jamtur01/redis_replica .

  5. 创建Redis后端集群

    5.1 创建express网络:sudo docker network create express

    注:以下容器均在express网络下运行。
    

    5.2 运行Redis主容器

    5.3 读取Redis主日志

    5.4 运行第一个Redis副本容器

    5.5 读取Redis副本容器的日志


    5.6 运行第二个Redis副本容器

    5.7 第二个Redis副本容器的日志

  6. 创建Node容器

    6.1 运行Node.js容器

    6.2 nodeapp容器的控制台日志:sudo docker logs nodeapp

    6.3 在宿主机打开相应网页,查看应用的输出

  7. 捕获应用日志:用Logstash完成

    7.1 构建Logstash镜像

    mkdir logstash

    cd logstash

    touch Dockerfile

    vi Dockerfile

    将链接中的代码复制到Dockerfile: 具体代码请参照图片

    touch logstash.conf

    vi logstash.conf

    将链接中的代码复制到logstash.conf

    sudo docker build -t jamtur01/logstash .

    7.2 启动Logstash容器

    7.3 logstash容器的日志

    在网页上刷新nodeapp后日志的变化:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值