#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 ...
может быть немного проще, чтобы иметь возможность находить автоматически сгенерированные имена контейнеров.)