您的位置:首页 > 运维架构 > Docker

6-使用Docker构建服务

2017-10-10 10:56 513 查看

使用Docker构建服务

6.1 构建第一个应用

构建Jekyll基础镜像

mkdir Jekyll

cd Jekyll

vi Dockerfile

将链接中的代码复制到Dockerfile

构建Apache镜像

mkdir Apache

cd Apache

vi Dockerfile

将链接中的代码复制到Dockerfile

启动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




更新Jekyll网站

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



4.2 再次启动james_blog容器

sudo docker start james_blog


4.2 重新加载网站



备份Jekyll卷

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

cd james_blog




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



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


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

WAR文件的获取程序

mkdir fetcher

cd fetcher

touch Dockerfile

将链接中的代码复制到Dockerfile

sudo docker build -t jamtur01/fetcher .

获取WAR文件

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



2.2 查看示例里的卷



Tomcat7应用服务器

mkdir tomcat7

cd tomcat7

touch Dockerfile

将链接中的代码复制到Dockerfile

sudo docker build -t jamtur01/tomcat7 .

运行WAR文件

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

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

在浏览器上浏览应用



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

6.3 多容器的应用栈

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 .

Redis基础镜像

mkdir redis_base

cd redis_base

vi Dockerfile

将链接中的代码复制到Dockerfile



sudo docker build -t jamtur01/redis .

Redis主镜像

mkdir redis_primary

cd redis_primary

vi Dockerfile

将链接中的代码复制到Dockerfile



sudo docker build -t jamtur01/redis_primary .

Redis副本镜像

mkdir redis_replica

cd redis_replica

vi Dockerfile

将链接中的代码复制到Dockerfile



sudo docker build -t jamtur01/redis_replica .

创建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副本容器的日志



创建Node容器

6.1 运行Node.js容器



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



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



捕获应用日志:用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后日志的变化:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker-network