使用内网的Docker Image启动AcmeAir应用

Posted 让编程成为一种习惯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用内网的Docker Image启动AcmeAir应用相关的知识,希望对你有一定的参考价值。

1.修改docker启动选项,添加信赖私有仓库

为了拉取docker.oneapm.me仓库里的镜像,我们需要将它添加为信赖仓库,方式是在启动选项中添加 --insecure-registry docker.oneapm.me 

A. Ubuntu环境

在Ubuntu 14环境中添加

修改Docker配置文件
vi /etc/default/docker
增加以下一行
DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=docker.oneapm.me"
重启Docker
 systemctl daemon-reload
sudo service docker restart

在Ubuntu 15环境中添加

修改Docker配置文件
vi /lib/systemd/system/docker.service
修改 ExecStart=/usr/bin/docker daemon -H fd://  
改成 ExecStart=/usr/bin/docker daemon -H fd://  --insecure-registry=docker.oneapm.me
重启Docker
 systemctl daemon-reload
sudo service docker restart

B.在Centos环境中添加

1)查看docker.service的文件路径

 

2)上图中Loaded节描述的文件位置即为docker.service文件的路径,然后查看文件,

3)上图中,可以看到,依赖的参数配置,是从/etc/sysconfig/docker中加载进来的。用编辑器打开/etc/sysconfig/docker,然后在OPTIONS中添加下面的内容,然后重新加载配置systemctl daemon-reload,再重启docker

如果没有上图中的EnvironmentFile参数配置 可以直接在添加 ExecStart=/usr/bin/docker daemon -H fd:// --insecure-registry=docker.oneapm.me

OPTIONS=\'--selinux-enabled  --insecure-registry docker.oneapm.me\'
systemctl daemon-reload
systemctl restart docker.service

C.在windows环境中添加

boot2docker ssh
sudo vi /var/lib/boot2docker/profile
增加一行
EXTRA_ARGS="--insecure-registry docker.oneapm.me"
保存,然后重启docker服务:
sudo /etc/init.d/docker restart

D.任何环境均可使用带启动参数后台方式启动(如果上面的方式没有生效,请使用这种这种方式)

若使用命令行方式启动docker:
nohup docker -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --insecure-registry docker.oneapm.me -d > /dev/null 2>&1 &

2.拉取镜像(image)

       只需要选择cassandra和mysql其中一个

1)cassandra数据库版本的镜像

创建一个脚本 vi pullimages_cassandra.sh ,内容如下block里面所示,然后执行脚本sh pullimages_cassandra.sh

#!/bin/bash
docker pull docker.oneapm.me/acmeair/webapp
docker pull docker.oneapm.me/acmeair/auth-service
docker pull docker.oneapm.me/acmeair/eureka
docker pull docker.oneapm.me/acmeair/zuul
docker pull docker.oneapm.me/acmeair/loader
docker pull docker.oneapm.me/acmeair/cassandra
docker pull docker.oneapm.me/ubuntu
docker pull docker.oneapm.me/crosbymichael/skydock
docker pull docker.oneapm.me/crosbymichael/skydns

2)MySQL数据库版本的镜像

创建一个脚本 vi pullimages_mysql.sh ,内容如下block里面所示,然后执行脚本sh pullimages_mysql.sh

#!/bin/bash
docker pull docker.oneapm.me/acmeair/webapp-mysql
docker pull docker.oneapm.me/acmeair/auth-service-mysql
docker pull docker.oneapm.me/acmeair/eureka
docker pull docker.oneapm.me/acmeair/zuul
docker pull docker.oneapm.me/acmeair/loader-mysql
docker pull docker.oneapm.me/acmeair/mysql
docker pull docker.oneapm.me/ubuntu
docker pull docker.oneapm.me/crosbymichael/skydock
docker pull docker.oneapm.me/crosbymichael/skydns

3.修改镜像名称

创建一个新脚本:renameimages.sh,内容如下block所示,然后执行 sh renameimages.sh

#!/bin/bash
images=`docker images | grep "oneapm" | awk \'{print $1}\'`
for i in $images
do
    newname=`echo "$i" | cut -d / -f 2-3`
    docker tag $i $newname
    docker rmi -f $i
done

4.启动镜像

下载acmeair-netflsixosshttps://yunpan.cn/cvX6wBK7M5ptE (提取码:2da6请下载适合自己环境的压缩文件,解压后,执行启动脚本(根据上面镜像版本,选择启动cassandra或MySQL的应用):

1)cassandra数据库版本的环境

cd acmeair-netflixoss.git/bin
./startallexceptscaler.sh

2)MySQL数据库版本的环境

cd acmeair-netflixoss.git/bin
./startallwithmysql.sh

5.部署ejb-server并启动它

注:这只针对mysql版的

docker cp ejb-server-0.4.0.jar wlsadmin1:/u01/

AcmeAir相关问题及解决方法链接

 

6.验证是否已经正常启动

       主页面可以正常打开,并且登陆、账户、查票等功能可以正常使用,如图:

或者使用 acmeair-netflixoss/bin/testzuul.sh,确认收到 200 返回值 (如果提示curl not found ,应该是机器没有curl命令,请使用命令安装 apt-get install curl )

 
root@acmeair-haishan-test:~/acmeair/acmeair-netflixoss/bin# ./testzuul.sh
200 HTTP://172.17.0.4/rest/api/login
200 HTTP://172.17.0.4/rest/api/customer/byid/uid0@email.com
200 HTTP://172.17.0.4/rest/api/flights/queryflights
200 HTTP://172.17.0.4/rest/api/login/logout?login=uid0@email.com
200 HTTP://172.17.0.4/rest/api/login
200 HTTP://172.17.0.4/rest/api/customer/byid/uid0@email.com
200 HTTP://172.17.0.4/rest/api/flights/queryflights
200 HTTP://172.17.0.4/rest/api/login/logout?login=uid0@email.com
200 HTTP://172.17.0.4/rest/api/login
200 HTTP://172.17.0.4/rest/api/customer/byid/uid0@email.com
200 HTTP://172.17.0.4/rest/api/flights/queryflights
200 HTTP://172.17.0.4/rest/api/login/logout?login=uid0@email.com
200 HTTP://172.17.0.4/rest/api/login
200 HTTP://172.17.0.4/rest/api/customer/byid/uid0@email.com
200 HTTP://172.17.0.4/rest/api/flights/queryflights
200 HTTP://172.17.0.4/rest/api/login/logout?login=uid0@email.com
200 HTTP://172.17.0.4/rest/api/login
200 HTTP://172.17.0.4/rest/api/customer/byid/uid0@email.com
200 HTTP://172.17.0.4/rest/api/flights/queryflights
200 HTTP://172.17.0.4/rest/api/login/logout?login=uid0@email.com
200 HTTP://172.17.0.4/rest/api/login
200 HTTP://172.17.0.4/rest/api/customer/byid/uid0@email.com
200 HTTP://172.17.0.4/rest/api/flights/queryflights
200 HTTP://172.17.0.4/rest/api/login/logout?login=uid0@email.com

下一步 部署探针 (企业版   SaaS版)

 

 

 

以上是关于使用内网的Docker Image启动AcmeAir应用的主要内容,如果未能解决你的问题,请参考以下文章

怎样从外网访问内网Docker容器

从外网连接内网的打印机

内网dns配置

CEPH离线部署(纯内网)

docker镜像文件传输

怎样从外网访问内网服务器,内网电脑