在容器中执行容器中的二进制和在容器中执行宿主机的二进制有什么区别

查看 68|回复 4
作者:rower   
我嘞个豆,事情是这样的,我有个朋友。
他的二进制文件比如叫 dollar ,使用 docker-compose 运行
docker-compose 如下
dollar:
image: alpine:xxx
volumes:
- /opt:/opt
working_dir: /opt/dollar
command: ["./dollar"]
他没有把 dollar 这个二进制放到容器中,而是在宿主机上,使用挂载卷的方式在容器中能直接访问宿主机上的文件,然后启动的。
感觉这个和我学的不一样啊,我学的都是在容器中构建二进制,然后在容器中直接启动了,这两种方式有啥不一样吗

二进制, 容器, dollar, opt

morenacl   
明显他的 image 比你的小
nilai   
这没什么问题啊, 通过目录挂载进去的执行的, 其实 docker 中运行的进程在宿主机的进程列表中都能看到, 你可以把 docker 想像为加上了一些资源隔离机制的进程。
harry890829   
本身没有不一样,Linux 都是通过明明空间分隔的,最后其实都是执行了一个二进制,你学的也没有问题,但是应该是实践不多,如果是容器编译环境的话,一般是会使用一个`FROM golang:1.18 as builder`进行容器的编译,然后将编译结果和依赖文件复制到一个新的镜像中,要不然我发布一个 docker image 一定要带着我源码给出去嘛
rower
OP
  
@morenacl 没毛病
您需要登录后才可以回帖 登录 | 立即注册

返回顶部