활성 컨테이너 buildah run
에서 프로그램을 실행 하고 ,podman exec
buildah-run - Run a command inside of the container.
podman-exec - Execute a command in a running container
그런데 옵션 buildah run
은 하나만 --hostname
지원되나요? 이러한 명령이 일관성이 없는 이유는 무엇입니까? 왜 그들은 다른 능력을 가지고 있습니까?
다른 말로 하면,buildah에는 현재 손상된 --hostname
옵션이 있습니다., 그러나 왜 작동하는지 잘 모르겠습니다. Podman을 사용하면 이 옵션은 다음과 같이 설정됩니다.방사컨테이너와 빌다가 완성되었으니 논쟁이 있어야 buildah from
하지 않겠습니까 ?buildah from
--hostname
답변1
buildah run은 --hostname을 지원하는 podman run에 더 가깝습니다.
podman exec는 실행 중인 컨테이너에서 실행되어야 하며, buildah run 및 podman run은 새 컨테이너를 생성합니다.
그런데 buildah run의 목적은 컨테이너를 실행하여 컨테이너 이미지 빌드를 돕는 것입니다. Podman 실행은 보다 일반적인 목적입니다.
답변2
그 이유는 조금 설명이 필요하지만,
- 컨테이너는 모든 네임스페이스와 함수의 개념적으로 연결된 컬렉션입니다.
- 컨테이너의 프로세스가 실행 중이면 컨테이너가 실행 중(상태)입니다.지금구현하다.
- 대부분의 네임스페이스(내 생각에는 사용자 네임스페이스 제외)는 다음을 설정해야 합니다.앞으로컨테이너가 실행 중입니다.
- 네임스페이스의 변경 사항은 해당 네임스페이스의 모든 프로세스에 표시됩니다.
buildah run
실행되지 않는 컨테이너를 시작하고 이러한 네임스페이스를 초기화합니다. 네임스페이스 내에서 다른 어떤 것도 실행되지 않는다는 것을 알기 때문에 네임스페이스 변경으로 인한 부작용에 대해 걱정할 필요가 없습니다.podman exec
실행 중인 컨테이너를 가져와 동일한 PID(및 기타) 네임스페이스로 다른 프로세스를 시작합니다. 네임스페이스를 초기화하지 않기 때문에 네임스페이스 내의 모든 변경 사항은 해당 네임스페이스에 연결된 다른 모든 프로세스에 영향을 미칩니다. 따라서 네임스페이스 수정이 비활성화됩니다.