【发布时间】:2019-04-30 06:55:24
【问题描述】:
不确定这是否是一个重复的问题,但我试图找出一些东西,但不确定我是否有与其他人类似的情况。 所以我是 docker 新手,正在尝试为一个小型网站设置部署。
到目前为止,我有一个包含 3 个文件的文件夹。
index.html - 有基本的 html
Dockerfile - 有
FROM ubuntu:16.04
COPY . /var/www/html/
- docker-compose.yml - 有
version: '2.1'
services:
app:
build: .
image: myname/myapp:1.0.0
nginx:
image: nginx
container_name: nginx
volumes:
- ./host-volumes:/cont-volumes
network_mode: "host"
phpfpm56:
image: php-fpm:5.6
container_name: phpfpm56
volumes:
- ./host-volumes:/cont-volumes
network_mode: "host"
mysql:
image: mysql:5.7
container_name: mysql
ports:
- "3306:3306"
volumes:
- mysql:/var/lib/mysql
volumes:
mysql:
现在我正在使用 jenkins 来创建构建,将我的所有代码放入主机卷以使其可用于容器,然后我将运行
docker-compose build
现在它创建了一个图像,我将它推送到docker hub。
然后我登录到远程服务器并拉取图像并运行。但这不起作用,因为我仍然需要在容器内运行 docker-compose up。
这是正确的方法还是我在这里遗漏了什么?
【问题讨论】:
-
你只想在远程服务器上运行镜像吗?还是以 docker compose 的方式运行镜像?
-
好吧,我可以运行图像,但这不会做任何事情。对?因为它除了 index.html、Dokcerfile 和 docker-compose.yml 之外什么都没有。所以直到并且除非我运行 docker-compose up 它没有用。 - 这是我的想法顺便说一句。此外,如果我想运行 docker-compose,我需要先运行映像,然后登录到该容器,然后运行 dockerc-compose。你认为整个设置是正确的还是我应该采用不同的方法。
-
如果 index.html 文件将使用 docker compose 中的其他内容,则不能只在远程服务器中运行新图像。
-
不对,docker compose 只是帮你设置图片的链接。所以在容器里面运行dokcer-compose是不对的。
-
那我该怎么办?就像使用 Dockerfile 创建一个镜像并运行它一样。没有码头工人撰写。或者不需要创建图像,只需将整个代码复制到服务器,然后运行 docker-compose。没有 Dockerfile。
标签: docker docker-compose dockerfile docker-machine