Как мне создать ввод в go контейнер с ядрами?

#docker #containers

#docker #контейнеры

Вопрос:

Я довольно новичок в docker container и docker compose.

Я запустил docker composehttps://github.com/codeniko/pihole-coredns-tls-docker/blob/master/docker-compose.yml

Я хотел создать точку входа, чтобы я мог войти в контейнер.

для которого я внес нижеприведенные изменения

  coredns_upstream:
    image: "coredns/coredns"
    tty: true
    stdin_open: true
    volumes:
      - "./coredns/:/etc/coredns/"
    command: -conf /etc/coredns/coreconfig-up
    restart: unless-stopped
    container_name: coredns_up
    entrypoint: /bin/bash
    networks:
      coredns:
        ipv4_address: 172.10.10.100
  

Я добавил эти изменения:

 tty: true
stdin_open: true
  

чтобы иметь возможность вводить,
это не сработало, поэтому я добавил

 entrypoint: /bin/bash
  

это выдает ошибку при попытке запустить контейнер, docker создает

 ERROR: for coredns_upstream  Cannot start service coredns_upstream: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: "/bin/bash": stat /bin/bash: no such file or directory": unknown
ERROR: Encountered errors while bringing up the project.
  

Комментарии:

1. Эта установка попытается запустить оболочку в качестве продолжительного серверного процесса вместо фактического продолжительного серверного процесса, который обычно выполняется контейнером. На самом деле вы не можете запустить интерактивную оболочку через Compose; это не то, для чего она предназначена. Если это сработало, что вы надеетесь сделать?

2. Вы неправильно поняли. Я не пытаюсь войти через docker compose, docker compose просто запускает контейнер. Я хочу иметь возможность позже вводить контейнеры

3. Что означает «enter»? Как вы «входите» в другие программы, такие как nginx или веб-браузер, запущенный непосредственно на вашем хостинге?

4. Я имею в виду следующее docker exec -ti container_name bash

5. Вам не нужно ничего делать, чтобы это сработало. ( docker-compose exec ... может быть немного проще, чтобы иметь возможность находить автоматически сгенерированные имена контейнеров.)