Dockerfile 관련 질문 드립니다.
355
작성한 질문수 31
ssh 설치 후 서비스를 올리고 싶은데
아래 3가지를 다 적용을 해도 서비스가 실행이 안됩니다.
Dockerfile
docker run 이후
service ssh start 명령으론 정상 작동 됩니다.
답변 1
0
안녕하세요!
도커 컨테이너가 실행되는 것과 리눅스 서버 실행의 차이를 알면 좋을 것 같습니다.
1. RUN 명령어에서 서비스 실행하기
도커 컨테이너에서 프로세스를 실행하려면 반드시 CMD에 정의합니다. 그 이전 RUN에 실행되는 명령어는 그 결과가 도커 이미지로 저장될 뿐 실제 프로세스가 실행되는 시점은 컨테이너가 실행되면서 CMD 부분에 정의된 것입니다.
2. CMD에 service 시작
CMD에서 서비스를 실행하면 실제로 실행이 되지만, ssh 서버가 백그라운드로 실행되기 때문에 바로 컨테이너가 종료됩니다. 컨테이너가 실행되고 계속 떠 있으려면 프로세스가 실행중이여야 합니다.
따라서 ssh 서비스를 실행하고 프로세스가 종료되지 않도록 해야 합니다.
CMD service ssh start && tail -f /var/log/lastlog
임의로 프로세스가 멈추지 않게 로그를 보거나
CMD ["/usr/sbin/sshd", "-D"]
ssh를 백그라운드가 아닌 포그라운드로 실행하면 됩니다.
3. 주의할점
일반적으로 컨테이너를 만들때 ssh 서버를 포함하는것은 보안상의 이유로 권장하지 않습니다.
보통 한번에 하나의 프로세스를 실행하는걸 권장하지만 여러개의 프로세스를 실행하는 것도 허용합니다.
프로세스를 실행하는 여러가지 방법이 있는데 supervisord를 많이 이용합니다.
추가로 궁금한점 있으면 문의주세요!
감사합니다.
실습코드
0
119
1
-v 옵션 후 workpress database 에러
0
128
1
Error establishing a database connection 질문 드립니다.
0
346
1
다중 컨테이너 실행 (APP)
0
190
1
ghost 실습 데이터베이스 에러
0
328
1
ghost 관리자 화면, 환경변수 url
0
232
1
ghost 실습 - 환경변수 url (2024)
0
243
1
hellonode 실습 질문있습니다.
0
198
1
docker-compose.yml 속성 문의
0
288
1
docker run 명령어중 /bin/sh 파라미터 문의
0
407
1
docker run -p 3000:3000 실행 시 오류
0
463
1
node app.js 실행 에러
0
328
1
Permission denied
0
686
1
result code build 시에 오류 있으신 분들
4
371
2
frontend, backend environment port 속성 관련 질문
0
375
1
app.js 실행 시 http 모듈 관련 이슈
0
346
1
방명록 배포과정중 질문이 있습니다.
0
309
1
Error establishing a database connection 에러 해결좀 해주세요
0
1419
1
docker 설치 오류
0
635
1
도커 기본 명령어 진행 중 막히는 부분
0
362
1
custom docker와 Base Image
0
253
1
안녕하세요 -d 옵션과 --rm 옵션에 대해서 질문을 하고자 합니다!
0
292
1
-v flag 에 질문있습니다
0
256
1
윈도우 파워쉘로 도커를 할라고하는데 컨테이너 만들기는 어떻게 해야되나요
0
789
1





