为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-Machine AWS策略
- 针对Dockerized Django应用播种MySQL数据库
- 为什么dockerbuild立我的复制path与临时目录前缀?
- 在docker-compose中使用network_mode ='host'break run:主机typesnetworking不能与链接一起使用
- 我需要在我的docker-compose.yml文件中添加一个服务,让我发送电子邮件?
- 如何在docker中有“运行”命令 – 撰写类似于docker文件?
- 无法连接到docker集装箱
- docker组成卷导致错误:容器命令未find或不存在
- Docker Toolbox Mac命令行和Kitematics失败