如何将 docker run -it bash 命令转换为 docker-compose?

Ale*_*o C 4 docker docker-compose docker-run

给出以下命令:

docker run -dit -p 9080:9080 -p 9443:9443 -p 2809:2809 -p 9043:9043 --name container_name --net=host myimage:latest bash
Run Code Online (Sandbox Code Playgroud)

如何将其转换为等效的 docker-compose.yml 文件?

Rao*_*zur 5

在 docker-compose 中 -it 标志通过以下方式反映:

tty: true
stdin_open: true
Run Code Online (Sandbox Code Playgroud)

相当于docker run --net=host

services:
  web:
    ...
    networks:
      hostnet: {}

networks:
  hostnet:
    external: true
    name: host
Run Code Online (Sandbox Code Playgroud)

所以你最终的 docker-compose 应该是这样的:

version: '3'
services:
  my_name:
    image: myimage:latest
    container_name: my_name
    ports:
     - "9080:9080"
     - "9443:9443"
     - "2809:2809"
     - "9043:9043"
    command: bash
    tty: true
    stdin_open: true
    networks:
      hostnet: {}

networks:
  hostnet:
    external: true
    name: host
Run Code Online (Sandbox Code Playgroud)

撰写文件版本 3 参考

最后但并非最不重要的是,如果您想在分离模式下运行它,只需-d向 docker-compose 命令添加标志:

docker-compose up -d
Run Code Online (Sandbox Code Playgroud)