nginx 사용자 정의 미 러
10405 단어 Docker깊이 들 어가 면 Docker 가 나온다.
nginx 의 CMD
nginx 공식 미 러 의 dockerfile 을 살 펴 보 세 요. alpine 방식 이 든 일반 방식 이 든 CMD 의 설정 은 다음 과 같 습 니 다.
CMD [“nginx”, “-g”, “daemon off;”]
daemon off 방식 으로 nginx 를 프론트 데스크 톱 에서 실행 하여 미 러 가 종료 되 지 않도록 합 니 다.
왜 공식 미 러 를 수정 해 야 합 니까?
nginx 의 사용 은 공식 미 러 가 설정 파일 등 을 걸 수 있 지만 실제 사용 에서 실제 적 인 사용 방식 이 있 을 수 있 고 설정 이나 동 태 를 맞 춰 설정 해 야 합 니 다.예 를 들 어 저 희 는 nginx 미 러 가 실 행 된 후의 역방향 프 록 시 설정 을 동적 으로 수정 하고 싶 습 니 다. 이런 설정 은 환경 변 수 를 통 해 들 어 오 는 것 입 니 다. 용기 생 성 단계 가 다 를 수 있 습 니 다. 물론 nginx. conf 를 설정 하고 nginx reload 등 과 결합 하여 이 루어 질 수 있 습 니 다.일반적으로 CMD 에서 사용자 정의 시작 프로그램 이나 스 크 립 트 를 사용 하고 미리 설정 한 다음 에 nginx - g daemon off 를 호출 하면 nginx 서 비 스 를 시작 할 수 있 습 니 다.
사전 준비
[root@liumiaocn nginx]# cat Dockerfile
FROM nginx:1.15
ADD start-nginx-server.sh /usr/local/bin/
CMD ["/usr/local/bin/start-nginx-server.sh"]
[root@liumiaocn nginx]# cat start-nginx-server.sh
#!/bin/sh
nginx -g "daemon off"
[root@liumiaocn nginx]# chmod 755 start-nginx-server.sh
[root@liumiaocn nginx]#
구축 & 시작
nginx 미 러 구축
[root@liumiaocn nginx]# docker build -t nginx:test .
Sending build context to Docker daemon 3.072 kB
Step 1/3 : FROM nginx:1.15
---> 06144b287844
Step 2/3 : ADD start-nginx-server.sh /usr/local/bin/
---> 9fc838fb4455
Removing intermediate container 154f34ce7202
Step 3/3 : CMD /usr/local/bin/start-nginx-server.sh
---> Running in 79ee81f4285c
---> 614634c88135
Removing intermediate container 79ee81f4285c
Successfully built 614634c88135
[root@liumiaocn nginx]#
성공 적 으로 구축 되 었 지만 nginx 서 비 스 를 시작 할 수 없습니다.
[root@liumiaocn nginx]# docker run -p 8848:80 nginx:test
2018/09/08 14:13:20 [emerg] 5#5: unexpected end of parameter, expecting ";" in command line
nginx: [emerg] unexpected end of parameter, expecting ";" in command line
[root@liumiaocn nginx]#
대응 방법
"위의 힌트 가 부족 합 니 다."사용 방식 에 문제 가 생 겼 을 가능성 이 높다.그래서 nginx. conf 를 직접 수정 하여 daemon off 방식 을 기록 하 는 것 은 임시 대응 방법 이 라 고 할 수 있 습 니 다.
[root@liumiaocn nginx]# vi Dockerfile
[root@liumiaocn nginx]# cat Dockerfile
FROM nginx:1.15
ADD start-nginx-server.sh /usr/local/bin/
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
CMD ["/usr/local/bin/start-nginx-server.sh"]
[root@liumiaocn nginx]# vi start-nginx-server.sh
[root@liumiaocn nginx]# cat start-nginx-server.sh
#!/bin/sh
nginx
[root@liumiaocn nginx]#
미 러 구축 & 실행
[root@liumiaocn nginx]# docker build -t nginx:test .
Sending build context to Docker daemon 3.072 kB
Step 1/4 : FROM nginx:1.15
---> 06144b287844
Step 2/4 : ADD start-nginx-server.sh /usr/local/bin/
---> b0cb6ec8150f
Removing intermediate container 96bb7731968a
Step 3/4 : RUN echo "daemon off;" >> /etc/nginx/nginx.conf
---> Running in 2a504d56afd7
---> 887b5f391096
Removing intermediate container 2a504d56afd7
Step 4/4 : CMD /usr/local/bin/start-nginx-server.sh
---> Running in fbff5cc58c0f
---> dfba70dacc0a
Removing intermediate container fbff5cc58c0f
Successfully built dfba70dacc0a
[root@liumiaocn nginx]#
[root@liumiaocn nginx]# docker run -p 8848:80 nginx:test
curl 이나 브 라 우 저 로 접근 하기
[root@liumiaocn ~]# curl http://localhost:8848
<html>
<head>
<title>Welcome to nginx!title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
style>
head>
<body>
<h1>Welcome to nginx!h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.orga>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.coma>.p>
<p><em>Thank you for using nginx.em>p>
body>
html>
[root@liumiaocn ~]#
nginx 로그 와 상기 반환 결 과 를 통 해 정상 적 인 작업 을 시작 한 것 을 볼 수 있 습 니 다.
[root@liumiaocn nginx]# docker run -p 8848:80 nginx:test
172.17.0.1 - - [08/Sep/2018:14:32:33 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
참고 내용
/nginx/”>https://hub.docker.com//nginx/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
첫 번째 Docker for Mac참고 , 나는 옆에 있는 Mac에 Docker를 설치하고 컨테이너를 세워 보고 싶다. Docker Hub를 처음 사용할 때는 계정을 만들어야 합니다. Docker.dmg을 실행하면 Docker가 설치됩니다. Dock...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.