docker 사용법
1. 실행 중인 컨테이너를 보려면 docker ps
2. docker 이미지를 보려면 docker 이미지
3. docker rm id(컨테이너 ID) 컨테이너 삭제(컨테이너 ID는 docker ps를 통해 볼 수 있음, 컨테이너 중지해야 함 3.1 모든 컨테이너 삭제 docker rm `docker ps -a -q`
4. docker stop id(컨테이너 ID) 컨테이너 실행 중지
5. docker rmi id(미러 ID) 이미지 삭제
6 . docker pull ubuntu:16.04 (이미지 이름: 버전 번호) 이미지 다운로드
7. docker run -it ubuntu:16.04 컨테이너 컨테이너 생성 및 실행
-t는 새 컨테이너에 의사 터미널 또는 터미널을 지정하는 것을 의미합니다
- 즉, 컨테이너의 (stdin)과 상호 작용할 수 있다는 의미입니다.
-p는 매핑된 포트를 지정합니다.
-d는 백그라운드에서 컨테이너를 실행하고 컨테이너 ID를 인쇄합니다.
7.1 docker run -dit ubuntu:16.04 Create 및 백그라운드에서 컨테이너 실행
7.2 docker run -ditp 8080:8080 (호스트 포트: 컨테이너 포트) ubuntu:16.04 백그라운드에서 컨테이너 생성 및 실행 및 컨테이너 포트 매핑
8. docker attachment id ( 컨테이너 ID) 실행 중인 컨테이너 환경에 진입
9. Exit Container
9.1exit는 컨테이너를 직접 종료하고 컨테이너의 실행을 종료합니다
9.2 [ctrl+p]+[ctrl+q](단축키)는 컨테이너를 종료하지만 컨테이너 실행을 종료하지 않습니다
10.docker commit -m' version ID ' id(컨테이너 ID) ubuntu:16.04(이미지 및 버전 번호) 이미지 제출 및 이미지 생성(이 명령을 사용하여 빌드된 컨테이너를 패키징할 수 있음) 새 이미지로 넣거나 원본 이미지를 덮어씁니다(즉, 원본 이미지 내용을 수정하고 생성합니다. 이미지 이름이 버전 번호와 동일하면 직접 덮어쓸 수 있습니다.)
좋아요, 모두가 docker에 대해 알고 있습니다. 이 기사의 핵심 내용을 살펴보겠습니다.
nginx 자체는 로그 롤링 문제를 처리하지 않았으며 사용자에게 공을 찼습니다. 일반적으로 logrotate 도구를 사용하여 이 작업을 수행할 수 있으며 원하는 경우 다양한 스크립트를 작성하여 동일한 작업을 수행할 수 있습니다. 이 글의 저자는 docker에서 실행 중인 nginx 로그 파일을 스크롤하는 방법을 소개합니다(아래 사진은 인터넷에서 가져온 것입니다).
nginx 공식은 실제로 로그를 롤링하는 방법에 대한 지침을 제공했습니다.
로그 파일 회전
•먼저 이전 로그 파일의 이름을 바꿉니다
• nginx 마스터 프로세스는 신호를 받은 후 일부 처리를 수행한 다음 로그 파일을 다시 여는 작업자 프로세스
•작업자 프로세스는 새 로그 파일을 열고 이전 로그 파일을 닫습니다
사실 우리가 실제로 해야 할 유일한 작업은 처음 두 가지 사항입니다!
테스트 환경 만들기
$ docker run -d \ -p 80:80 \ -v $(pwd)/logs/nginx:/var/log/nginx \ --restart=always \ --name=mynginx \ nginx:1.11.3nginx의 로그를 현재 디렉터리의 로그 디렉터리에 바인딩하고 마운트했습니다.
test.sh 파일에 다음 콘텐츠를 저장합니다.
#!/bin/bash for ((i=1;i<=100000;i++)) do curl http://localhost > /dev/null sleep 1 done
그런 다음 이 스크립트를 실행하여 연속 로그 레코드 생성을 시뮬레이션합니다.
#!/bin/bash getdatestring() { tz='asia/chongqing' date "+%y%m%d%h%m" } datestring=$(getdatestring) mv /var/log/nginx/access.log /var/log/nginx/access.${datestring}.log mv /var/log/nginx/error.log /var/log/nginx/error.${datestring}.log kill -usr1 `cat /var/run/nginx.pid`getdatestring 함수는 현재 시간을 가져와서 "201807241310"과 같은 문자열 형식으로 지정합니다. 파일 이름을 지정할 시간입니다. 시간대는 여기서 tz='asia/chongqing'을 통해 지정됩니다. 기본 형식은 UTC 시간이므로 사용하기 이상합니다(실시간으로 +8시간을 알아내야 함). 다음 두 개의 mv 명령은 로그 파일의 이름을 바꾸는 데 사용됩니다. 마지막으로 kill 명령을 통해 usr1 신호를 nginx 마스터 프로세스로 보냅니다. 다음 명령을 통해 Rotatelog.sh 파일에 실행 권한을 추가하고 이를 $(pwd)/logs/nginx 디렉터리에 복사합니다.
$ chmod +x rotatelog.sh $ sudo cp rotatelog.sh $(pwd)/logs/nginx
롤링 작업을 정기적으로 수행합니다.
우리 nginx는 컨테이너에서 실행되므로 컨테이너의 nginx 마스터 프로세스에 usr1 신호를 보냅니다. 따라서 docker exec 명령을 통해 mynginx 컨테이너에서 Rotatelog.sh 스크립트를 실행해야 합니다.
위 명령을 한 번 실행하면 예정대로 새 로그 파일 배치가 생성됩니다.
$ docker exec mynginx bash /var/log/nginx/rotatelog.sh
이 명령을 예약된 작업에 구성하고 매일 아침 1시에 실행되도록 합시다. crontab -e 명령을 실행하고 파일 끝에 다음 줄을 추가합니다:
* 1 * * * docker exec mynginx bash /var/log/nginx/rotatelog.sh
* 1 * * * docker exec mynginx bash /var/log/nginx/rotatelog.sh
保存并退出就可以了。下图是笔者测试过程中每 5 分钟滚动一次的效果:
为什么不在宿主机中直接 mv 日志文件?
理论上这么做是可以的,因为通过绑定挂载的数据卷中的内容从宿主机上看和从容器中看都是一样的。但是真正这么做的时候你很可能碰到权限问题。在宿主机中,你一般使用的是普通用户,而在容器中产生的日志文件的所有者是会是特殊的用户,并且一般不会给其它用户写和执行的权限:
当然,如果你在宿主机中使用的是 root 用户就不会有问题。
能从宿主机中发送的信号吗?
其实这个问题的全称应该是:能从宿主机中给 docker 容器中的 nginx master 进程发送信号吗?
答案是,可以的。
笔者这一文中介绍了容器中信号的捕获问题,感兴趣的朋友可以去看看。在那篇文章中我们介绍了 docker 向容器中进程发送信号的 kill 命令。我们可以通过命令:
$ docker container kill mynginx -s usr

mv 로그 파일을 호스트에 직접 저장하지 않는 이유는 무엇입니까?

$ docker Container kill mynginx -s usr
🎜🎜 usr1 신호를 컨테이너의 프로세스 1번(nginx 마스터)에 보냅니다(이 방법은 신호만 보낼 수 있습니다). 1번 처리): 🎜🎜🎜🎜🎜위의 두 질문을 결합하면 docker에서 nginx 로그인을 스크롤하는 또 다른 방법을 작성할 수 있습니다. 이 방법은 docker exec 명령을 통해 컨테이너에서 명령을 실행할 필요가 없지만 호스트 시스템에서 모든 작업을 완료합니다. 🎜🎜🎜•먼저 컨테이너 데이터 볼륨에 있는 로그 파일의 이름을 바꿉니다🎜• 컨테이너 usr1 신호🎜위 내용은 Docker에서 nginx 로그를 스크롤하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Nginx가 인기있는 이유는 속도, 효율성 및 제어의 장점 때문입니다. 1) 속도 : 비동기 및 비 블로킹 처리를 채택하고 동시 연결이 높으며 강력한 정적 파일 서비스 기능이 있습니다. 2) 효율성 : 메모리 사용량이 낮고 강력한로드 밸런싱 기능. 3) 제어 : 유연한 구성 파일 관리 동작을 통해 모듈 식 설계는 확장을 용이하게합니다.

커뮤니티, 지원 및 리소스 측면에서 Nginx와 Apache의 차이점은 다음과 같습니다. 1. Nginx 커뮤니티는 작지만 활발하고 전문적이며 공식 지원은 NginxPlus를 통해 고급 기능과 전문 서비스를 제공합니다. 2. Apache에는 거대하고 활발한 커뮤니티가 있으며 공식 지원은 주로 풍부한 문서 및 커뮤니티 리소스를 통해 제공됩니다.

NginXunit은 Python, PHP, Java, Go 등과 같은 다양한 프로그래밍 언어 및 프레임 워크를 지원하는 오픈 소스 응용 프로그램 서버입니다. 1. 동적 구성을 지원하고 서버를 다시 시작하지 않고 응용 프로그램 구성을 조정할 수 있습니다. 2.nginxunit은 다중 언어 응용 프로그램을 지원하여 다국어 환경의 관리를 단순화합니다. 3. 구성 파일을 사용하면 Python 및 PHP 응용 프로그램 실행과 같은 응용 프로그램을 쉽게 배포하고 관리 할 수 있습니다. 4. 또한 응용 프로그램을 관리하고 스케일링하는 데 도움이되는 라우팅 및로드 밸런싱과 같은 고급 구성을 지원합니다.

Nginx는 웹 사이트 성능과 신뢰성을 향상시킬 수 있습니다. 1. 웹 서버로서 정적 컨텐츠를 프로세스합니다. 2. 리버스 프록시 서버로서의 전달 요청; 3.로드 밸런서로 요청을 할당; 4. 캐시 서버로서 백엔드 압력을 줄입니다. NGINX는 GZIP 압축 활성화 및 연결 풀링 조정과 같은 구성 최적화를 통해 웹 사이트 성능을 크게 향상시킬 수 있습니다.

nginxserveswebcontentandactsasareverseproxy, loadbalancer, andmore.1) itefficientservesstaticcontentikehtmllandimages.2) itfunctionsAresAreSeareverseProxyAndloadbalancer, 분배 TrafficacrossServers.3) nginxenhancesperformancethroughcaching.4) Itofferssecur

NginXunit은 동적 구성 및 다국어 지원으로 응용 프로그램 배포를 단순화합니다. 1) 서버를 다시 시작하지 않고 동적 구성을 수정할 수 있습니다. 2) Python, PHP 및 Java와 같은 여러 프로그래밍 언어를 지원합니다. 3) 고 동시성 처리 성능을 향상시키기 위해 비동기 비 차단 I/O 모델을 채택하십시오.

NGINX는 처음에 C10K 문제를 해결했으며 이제로드 밸런싱, 리버스 프록시 및 API 게이트웨이를 처리하는 모든 라운드로 발전했습니다. 1) 이벤트 중심 및 비 블로킹 아키텍처에서 잘 알려져 있으며 높은 동시성에 적합합니다. 2) NGINX는 IMAP/POP3을 지원하는 HTTP 및 리버스 프록시 서버로 사용될 수 있습니다. 3) 작동 원리는 이벤트 중심 및 비동기 I/O 모델을 기반으로하며 성능을 향상시킵니다. 4) 기본 사용에는 가상 호스트 구성 및로드 밸런싱 구성이 포함되며 고급 사용량은 복잡한로드 밸런싱 및 캐싱 전략이 포함됩니다. 5) 일반적인 오류에는 구성 구문 오류 및 권한 문제가 포함되며 디버깅 기술은 Nginx-T 명령 및 stub_status 모듈 사용이 포함됩니다. 6) 성능 최적화 제안에는 작업자 매개 변수 조정, GZIP 압축 사용 및

Nginx의 일반적인 오류에 대한 진단 및 솔루션에는 다음이 포함됩니다. 1. 로그 파일보기, 2. 구성 파일 조정, 3. 성능 최적화. 로그를 분석하고 시간 초과 설정을 조정하고 캐시 및로드 밸런싱 최적화를 통해 웹 사이트 안정성 및 성능을 향상시키기 위해 404, 502, 504와 같은 오류를 효과적으로 해결할 수 있습니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

드림위버 CS6
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.