Docker 는 Nginx 를 배치 하고 기본 요청 경로 와 프로필 을 마 운 트 합 니 다.
service docker start
설 치 된 docker 미 러 목록 보기 docker images
설치 안 했 으 면 설치 해.docker pull nginx
그리고 이 미 러 를 작 동 시 켜 야 합 니 다. 정상적으로 작 동 하 는 것 은 아래 의 명령 입 니 다. 하지만 서 두 르 지 마 세 요.
docker run -d -p 80:80 nginx
이 안의 값 이 무슨 뜻 인지 간단하게 설명 하 세 요.-d
이 nginx 용기 서비스 백 엔 드 를 실행 시 키 는 것 입 니 다.-p
지 정 된 포트 뒤에 있 는 80: 80 앞 에 있 는 80 은 숙 성 호스트 의 포트 뒤에 있 는 것 은 용기 에 있 는 nginx 의 포트 입 니 다. 예 를 들 어 8080: 80 으로 바 꾸 면 우 리 는 외부 에서 이 nginx 서비스 주 소 를 방문 하면 xx. xx. xx. xx: 8080 이면 nginx 의 환영 페이지 를 볼 수 있 습 니 다.nginx
당연히 시 작 된 미 러 이름 이 죠.그러나 아, 이렇게 쓰 면 좋 지 않 습 니 다. 만약 에 이 nginx 의 설정 파일 을 고치 거나 정적 페이지 를 바 꾸 면 어떻게 바 꿉 니까? 우 리 는 이 용기 의 내 부 를 바 꾸 어야 합 니 다. 간단하게 이 용기 의 내부 에 어떻게 들 어 가 는 지 말 해 보 겠 습 니 다.
먼저 이 nginx 용기 의 id 를 가 져 와 서 모든 용기 가 실행 되 고 있 는 지, exit 가 실행 되 고 있 는 지 확인 할 수 있 습 니 다. 위 에 exit 표시 가 있 기 때 문 입 니 다
docker ps -a
보 세 요. 비 치 는 포트 번 호 를 모두 드 렸 습 니 다. 저 는 이 안에 닫 힌 용기 서비스 가 없습니다. 저 는 강박 증 이 있 습 니 다. 모두 치 웠 습 니 다. 당신 도 있 으 면 이 명령 을 실행 하 십시오 xxxx 는 이 용기 의 id 그림 에 있 습 니 다.docker rm xxxxx
이렇게 쓸데없는 말 을 많이 해서 지금부터 중요 한 것 을 말 하 겠 습 니 다. 이 nginx 용기 에 있 는 프로필, 로그 파일 의 구체 적 인 경로 와 내용 을 바 꾸 려 면 마 운 트 에 사용 해 야 합 니 다. 제 가 이해 하 는 마 운 트 의 뜻 은 이 nginx 용 기 를 사용 할 때 용기 안의 설정 과 파일 경 로 를 사용 하지 않 고 호스트 에 있 는 자원 파일 을 사용 하 는 것 입 니 다. 참, 용기 에 어떻게 가 는 지 말 하지 않 았 습 니 다.이 명령 을 실행 하 십시오. 루트 사용자 앞 에 sudo
docker exec -it xxxx bash
xxxx 를 추가 하면 용기 id 입 니 다.좀 낯 이 익 지 않 습 니까? 사실 이 미 러 는 자신의 세계 처럼 외부 로부터 방 해 를 받 지 않 습 니 다. 그러나 기능 지정 은 호스트 가 다 있 지 않 습 니 다. 예 를 들 어 vim 명령 을 사용 하고 싶 습 니 다.
마 운 트 에 대해 서 다시 이야기 하 겠 습 니 다. 마 운 트 하려 면 미 러 에 있 는 nginx 설정 파일 이 어디 에 있 는 지 알 아야 합 니 다. 그리고 호스트 의 지정 한 위치 에 마 운 트 하 세 요. 그 러 니까 먼저 그들 이 어디 에 있 는 지 보 겠 습 니 다. 미 러 에 nginx. conf 설정 파일 경로
/etc/nginx/nginx.conf
default. conf 설정 파일 의 경로 /etc/nginx/conf.d/default.conf
기본 홈 페이지 폴 더 html 경로 /usr/share/nginx/html
로그 파일 경로 /var/log/nginx
그림 을 검증 하고 입력 하 세 요.exit
nginx 용 기 를 종료 하고 호스트 로 돌아 갑 니 다.다음은 홈 호스트 에 마 운 트 할 폴 더
mkdir -p /nginx/{conf,conf.d,html,logs}
를 만 듭 니 다. 이 네 개의 폴 더 를 만 드 는 것 은 무엇 에 쓰 이 는 지 아 시 겠 죠? 앞 에 추가 하 는 것 을 기억 할 수 있 는 권한 이 없습니다 sudo
다음은 해당 경로 로 프로필 이나 자원 파일 을 던 지기 시작 합 니 다. logs 에 서 는 사용 하지 않 습 니 다. error. log 와 access. log html 에 첫 페이지 에 보 여 줘 야 할 html 파일 을 자동 으로 마 운 트 한 다음 에 방문 하고 있 습 니 다. 추가 한 html 는 기본 nginx 환영 계 를 바 꾸 었 습 니 다. 지금 은 전혀 소 용이 없습니다. 아직 마 운 트 하지 않 았 습 니 다. 잠시 만 요.conf 에 nginx. conf 프로필 을 넣 습 니 다. 이 파일 의 내용 은 미 러 에서 복사 해 야 합 니 다. 미 러 와 일치 하도록 하 겠 습 니 다. 방금 용기 에서 본 프로필 copy 를 숙 호스트 앞 에 용기 의 경로 뒤 면 이 숙 호스트 의 경로
docker cp id:/etc/nginx/nginx.conf /nginx/conf/nginx.conf
입 니 다.
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
conf. d 의 default. conf 를 복사 합 니 다
docker cp id:/etc/nginx/conf.d/default.conf /nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
그리고 우 리 는 스스로 간단 한 html 페이지 를 써 서 그 에 게 마음대로 이름 을 지어 주면 나 는 고치 지 않 을 것 이다. index. html 이 라 고 한다.
그리고 이 파일 을 호스트 에 버 리 는
/nginx/html/
경로 에서 저 는 FileZilla 도구 로 파일 을 호스트 에 전송 합 니 다.마지막 으로 가장 중요 한 코너 가 왔 습 니 다.
마 운 트 를 시 작 했 습 니 다. 먼저 시작 한 nginx 용기 서 비 스 를 닫 았 습 니 다. 저 는 직접 하 겠 습 니 다.
docker rm id
OMG 는 먼저 닫 고 삭제 해 야 합 니 다. docker stop id
다 해 놓 고 다시 시작 할 게 요.docker run --name mynginx -d -p 80:80 -v /nginx/html:/usr/share/nginx/html -v /nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /nginx/logs:/var/log/nginx nginx
앞 은 호스트 경로 뒤의 nginx 용기 경로 입 니 다.
저도 자바 와 Docker 를 처음 배 웠 는데 부족 한 점 이 있 으 면 많이 가르쳐 주세요. 주로 자신 에 게 기록 을 남 기 는 것 입 니 다.
다음으로 전송:https://juejin.im/post/5cd5288e6fb9a032125071a6
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.