我正在尝试通过docker-compose创建docker图像。我怎么能做到这一点?
我可以通过docker-compose up开始我的项目(spring boot + cassandra)。一切都运行得很好。但在下一步,我想从这个项目的形象,推送到对接中心,并拉它从对接中心到其他计算机上测试。我尝试了“docker-compose build”,“docker-compose push”,然后是“docker-compose pull”。在pull之后,我可以看到cassandra和spring-boot-app已下载的信息。但是,当我想通过'docker run‘运行这个镜像时,它只运行springboot,没有cassandra。
这是我的docker-compose.yaml文件:
version: '3'
services:
cassandra:
build:
context: ../
dockerfile: docker/cassandra/Dockerfile
ports:
- "9042:9042"
container_name: cassandra
spring-boot-cassandra:
build:
context: ../
dockerfile: docker/springbootsample/Dockerfile
links:
- cassandra
ports:
- "8080:8080"
environment:
SPRING_DATA_CASSANDRA_CONTACT_POINTS: cassandra
container_name: springboot
entrypoint: /wait-for-it.sh cassandra:9042 -- java -Djava.security.egd=file:/dev/./urandom -jar app.jar
depends_on:
- "cassandra"
image: myrepo/springbootsample
networks:
default:
driver: bridge
发布于 2019-07-19 17:16:31
docker-compose
用于处理多个图像。我猜你在想它会把两个图像合并成一个,这是不会发生的。
由于引入了docker-compose
,docker run
一次只能运行一个映像,这是一个限制。
docker-compose up
执行docker run
、docker network create/add
等命令来为您创建环境。为了使用,
docker-compose build
将构建存在于docker-compose.yml
文件中的所有图像。
docker-compose push
会将你所有的图片推送到集线器。
docker-compose pull
将从集线器下载这些图像。
最后,如果您想运行这些映像,请使用docker-compose up
。如果图像不存在,它将首先从集线器下载这些图像。
https://stackoverflow.com/questions/57108975
复制相似问题