为docker-client for java设置docker中容器的端口
我不能在docker中为容器设置publicPort和privatePort。 我创builddocker容器与Java库docker-client
为Java https://github.com/spotify/docker-client
我已经在本地创build了一个docker镜像“mobillogix / selenium-chrome”。
DockerClient docker = DefaultDockerClient.fromEnv()。build();
// Bind container ports to host ports final String[] ports = {"44444", "59004"}; final String[] ports1 = {"4444", "5900"}; final Map<String, List<PortBinding>> portBindings = new HashMap<String, List<PortBinding>>(); for (String port : ports) { List<PortBinding> hostPorts = new ArrayList<PortBinding>(); hostPorts.add(PortBinding.of("0.0.0.0", port)); portBindings.put(port, hostPorts); } final HostConfig hostConfig = HostConfig.builder().portBindings(portBindings).build(); final ContainerConfig containerConfig = ContainerConfig.builder() .hostConfig(hostConfig) .image("mobillogix/selenium-chrome").exposedPorts(ports1) .build(); final ContainerCreation creation = docker.createContainer(containerConfig); final String id = creation.id(); // Start container docker.startContainer(id); final List<Container> containers = docker.listContainers(); webDriver(); // Kill container docker.killContainer(id); // Remove container docker.removeContainer(id);
这段代码创build容器:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6beec961dfcf mobillogix/selenium-chrome "/opt/bin/entry_point" 4 seconds ago Up 2 seconds 4444/tcp, 5900/tcp elegant_kare
与港口
4444 / tcp,5900 / tcp
但我想创build与端口的容器:
0.0.0.0:44444-> 4444/tcp,0.0.0.0:59004->5900/tc
根据文档 ,这里的正确语法是:
hostPorts.add(PortBinding.of("0.0.0.0", 44444)); portBindings.put(4444, hostPorts); hostPorts.add(PortBinding.of("0.0.0.0", 59004)); portBindings.put(5900, hostPorts);
你在循环中执行的是:
hostPorts.add(PortBinding.of("0.0.0.0", 44444)); portBindings.put(44444, hostPorts); hostPorts.add(PortBinding.of("0.0.0.0", 59004)); portBindings.put(50004, hostPorts);
- Docker for windows10运行django失败:无法打开文件'manage.py':没有这样的文件或目录
- 500(内部服务器错误)与Laravel和Docker
- Docker – 安装php-memcached扩展不工作?
- 在使用Docker-machine重新configurationdocker客户端后,如何将其设置回Docker for Windows hyperv
- Docker组成不显示控制台输出的链接
- :: SetDiGetDeviceRegistryProperty()失败与Docker for Windows上的SPDRP_BUSTYPEGUID
- Docker – 在数字海洋液滴上部署wordpress – wp-content在哪里?
- 在浏览器中访问私人dockerregistry
- 在Docker中使用nginx服务Rails的预编译资产