我正在尝试从此处运行泊坞窗图片:http://laradock.io/
我遇到的一个问题是一系列错误:
Error starting userland proxy: listen tcp 0.0.0.0:443: listen: address already in use
Error starting userland proxy: listen tcp 0.0.0.0:6379: bind: address already in use
Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use
...
搜索解决方案我发现要解决此问题,我需要在我的主机上杀死nginx,mysql,redis等,以允许docker接管端口。
但我尝试使用docker(或任何VM)的主要原因是让应用程序不使用主机,而是使用像192.168.1.5这样的地址(假设这将是docker容器的ip地址)
我的问题是,如果甚至可以使用docker,如果是,那么我需要做的是保持主机和docker之间100%的分离。
答案 0 :(得分:1)
这个问题有几种解决方案
--publish 443:443
之类的东西。这是一个冲突,因为您的主机已经在使用443。您可以将其更改为--publish 20443:443
。--publish 127.0.100.102:443:443
进行冲突。publish-all
。而不是--publish 443:443
使用--publish-all
。 Docker将在您的系统上挑选未使用的端口 - 保证不会发生冲突。您可以使用docker ps
或docker inspect
来查找这些端口。答案 1 :(得分:0)
我发现的一个解决方案是使用docker-machine vm。
# Create machine
docker-machine create --driver=virtualbox --virtualbox-hostonly-cidr "10.10.10.1/24" docker-default
# Export docker .env variables
eval $(docker-machine env docker-default)
我发现的一个问题是我需要使用NFS与docker机器共享项目文件夹。 为此,我使用了以下脚本:https://github.com/adlogix/docker-machine-nfs 我必须修改文件,因为在Linux上IP后面不能有空格(第372行):
exports="${exports}$shared_folder $machine_ip$prop_nfs_config\n"
那我可以跑步
docker-machine-nfs docker-default -f --nfs-config="(rw,no_subtree_check,crossmnt,all_squash,anonuid=1000,anongid=1000)" \
--shared-folder=/mnt/projects \
--shared-folder=/home/hubertnnn/projects