如上所述,我想在docker-compose的帮助下实现与docker本身相同的目标。
我希望更深入地了解docker,并且能够在平台上使用docker,而docker-compose不是一个选项。
我使用这个docker-compose文件:
---
version: '3'
services:
app:
build: .
proxy:
build: docker/proxy
ports:
- "80:80"
" app" service启动一个在端口3002上运行节点的容器(在dockerfile中公开)
"代理" service启动一个运行nginx的容器,其中包括以下conf:
server {
listen 80;
server_name app;
location / {
proxy_pass http://app:3002;
}
}
然后我将它添加到我的主机pc的/ etc / hosts中:
127.0.0.1 app
现在我运行docker-compose up
和v http://app,点击节点应用。
很好很简单,对吧?
现在我想只用docker做同样的事情。
要做到这一点,我
这里是剧本:
docker network create --driver bridge dockertest_nw
docker build -t dockertest_app .
docker create \
--name dockertest_app_con \
--network dockertest_nw \
--hostname app \
--network-alias=app \
--dns-search=app \
dockertest_app
docker build -t dockertest_proxy ./docker/proxy/
docker create \
--name dockertest_proxy_con \
--network dockertest_nw \
--hostname proxy \
--network-alias=proxy \
--dns-search=proxy \
-p 80:80 \
dockertest_proxy
docker start dockertest_proxy_con
docker start dockertest_app_con
不幸的是,这不起作用。
我也知道有一个来自docker的dns服务,docker-compose以某种方式使用,我也应该在某种程度上使用它?
有人可以提出一些建议吗?
更新 只是信息我从nginx容器中得到了以下日志,我想说这表明nginx无法解析" app" :
172.18.0.1 - - [13/Apr/2017:14:49:06 +0000] "GET / HTTP/1.1" 502 576 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36" "-"
2017/04/13 14:49:06 [error] 5#5: *13 connect() failed (111: Connection refused) while connecting to upstream, client: 172.18.0.1, server: app, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:3002/", host: "app"
答案 0 :(得分:0)
你正在绊倒所有这些选择。您真正需要的只是private boolean tuVariable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.completar_perfil);
if(tuVariable){ //si tu variable es true
TextView textView = new TextView(this);
textView.setText("you message");
}
在容器中设置短格式名称--network-alias
和app
,除了容器名称proxy
和{{1 }}
dockertest_app