Docker Alpine 컨테이너에서 셸 시작
Ubuntu 이미지의 대화형 셸을 시작하려면 다음을 실행합니다.
ole@T:~$ docker run -it --rm ubuntu
root@1a6721e1fb64:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
그러나 Alpine Docker 이미지에 대해 실행하면 다음과 같은 결과가 나타납니다.
ole@T:~$ docker run -it --rm alpine
Error response from daemon: No command specified
알파인 베이스 컨테이너에서 대화형 셸을 시작하는 명령은 무엇입니까?
ole@T:~$ docker run -it --rm alpine /bin/ash
(inside container) / #
위에서 사용한 옵션:
/bin/ash
is BusyBox에서 제공하는 Ash(Almquist Shell)--rm
용기가 나갈 때 자동으로 용기를 제거)docker run --help
)-i
대화형 모드(STDIN이 연결되지 않은 경우에도 열려 있음)-t
유사 TTY 할당
일반적으로 Alpine Linux 이미지에는 다음이 포함되지 않습니다.bash
대신 사용할 수 있습니다./bin/ash
,/bin/sh
,ash
아니면 오직sh
.
/빈/재
docker run -it --rm alpine /bin/ash
/bin/sh
docker run -it --rm alpine /bin/sh
재
docker run -it --rm alpine ash
쉬
docker run -it --rm alpine sh
이 정보가 당신에게 도움이 되길 바랍니다.
이제 Alpine 이미지가 직접 부팅됩니다./bin/sh
기본적으로 실행할 셸을 지정하지 않아도 됩니다.
$ sudo docker run -it --rm alpine
/ # echo $0
/bin/sh
이것은 다음과 같습니다.alpine
이제 imageDocker 파일에는 컨테이너가 시작될 때 실행할 셸을 지정하는 명령이 포함되어 있습니다.CMD ["/bin/sh"]
.
이전 Alpine 이미지 버전(2017년 이전 버전)에서는 Docker가 CMD에 대한 추가 계층을 생성하여 이미지 크기가 증가했기 때문에 CMD 명령을 사용하지 않았습니다.이것은 알파인 이미지 개발자들이 피하고 싶었던 것입니다.최근 도커 버전(1.10+)에서는 CMD가 더 이상 계층을 차지하지 않으므로 계층이 에 추가되었습니다.alpine
이미지들.따라서 CMD를 재정의하지 않는 한 최근 Alpine 이미지는/bin/sh
.
자세한 내용은 Glider Labs의 공식 Alpine Docker 파일에 대한 다음 커밋을 참조하십시오.
https://github.com/gliderlabs/docker-alpine/commit/ddc19dd95ceb3584ced58be0b8d7e9169d04c7a3#diff-db3dfdee92c17cf53a96578d4900cb5b
컨테이너가 이미 실행 중인 경우:
docker exec -it container_id_or_name ash
언급URL : https://stackoverflow.com/questions/35689628/starting-a-shell-in-the-docker-alpine-container
'prosource' 카테고리의 다른 글
mysql 8에서 sql 오류 0이 발생하는 이유는 무엇입니까? (0) | 2023.08.21 |
---|---|
Oracle에서 SQLplus 연결 (0) | 2023.08.21 |
내 위치: 플렉스박스를 사용할 때 스틱 요소가 끈적거리지 않습니다. (0) | 2023.08.21 |
수동 이벤트 수신기 내부의 기본값을 방지할 수 없습니다. (0) | 2023.08.21 |
Ajax 게시물이 Firefox에 의해 중단됨(Chrome 또는 IE에는 표시되지 않음) (0) | 2023.08.21 |