2018. 7. 1. 13:39

도커를 재대로 이해 못한상태에서, 컨테이너 들어가서, 


아파치 설정을 바꾸고 자꾸 재시작 하려니까.... 컨테이너가 종료되고, 실행이 안되는거다.


이게..처음에 개념을 잘못알고 있었는데, 컨테이너는 OS라기보다는 하나의 프로그램이 실행중이고,


거기에 웹서버 프로그램을 계속 돌리고있는거다.


그래서, 웹서버가 재시작을 하면, 컨터이너가 종료가 되는거다.


웹서버 이미지 Dockerfile를 보면, 마지막에 대부분 웹서버를 실행시킨다.


CMD /usr/sbin/apache2 -D FOREGROUND



이런 문구가 있는데,


이말은, 아파치를 백단말고, 앞단에서 계속 실행시킨다는 말이였던거다.


이걸 모르니....아파치 재시작을 하면 계속 컨터이너가 종료되고, 


아파치설정파일을 잘못 수정해서 에러가 뜨면, 실행이 안되던지.....


컨테이너 시작을 해도, 계속 에러가 뜨는거다.


도커 로그를 보면, 


httpd (pid 6) already running

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message


이런 문구들이 계속 뜨고, 실행이 안되다.


아마, 웹서버 계속 돌고있어서, 컨테이너가 실행될때, 다시 시작해야되는데, 실행이 안되는거같다.


인터넷 찾아보면, 


apache2 reload 


등과 같은 명령어를 사용하라고, 하는데, 이건 안되는거다.


결론은, 아파치 설정을 바꾸려면,


컨테이너를 죽였다가 다시 실행해야하는데, 


단점이 설정에 에러가 있으면, 컨테이너 자체가 실행이 안되고, 콘테이너 안에 들어갈 수가 없어서, 다시 수정도 못하는거다.


그래서 찾은 방법은


Dockerfile를 만들어서, 아파치 설정을 실행전에 바꾸고, 실행하는 방법을 해야한다.


근데, Docker명령어가 익숙치 않으니까, 이것도 일이다....


그래서 내가 선택한 방법은, 설정을 바꾸고, 바꾼 이미지를 떠서, 그 이미지로 새 컨테이너를 만들어 보는거다.



그 방법은 다음 포스트에서...


도커 개인 이미지 만들기(컨테이너 테스트하는 법) : http://tyson.tistory.com/142




Posted by Tyson