Centos 6.5 Dockerfile 을 통 해 Nginx 를 구축 하고 lua - nginx - module 모듈 을 설치 합 니 다.

6435 단어 Docker

머리말
회사 의 서버 버 전 은:
centos6.5 2.6.32-431.el6.x86_64

명령 으로 docker 설치
yum -y install docker-io

설치 완료 후 Docker 를 시작 합 니 다. 알림:
docker: unrecognized service

인터넷 에서 한 바퀴 찾 아 보 니 다음 과 같은 설명 이 있 습 니 다.
Docker 용기 가 최초 로 RHEL 의 완벽 한 지원 을 받 은 것 은 최근 CentOS 7.0 에서 시 작 된 것 으로 공식 설명 은 64 비트 구조 플랫폼 에서 만 실행 할 수 있 고 커 널 버 전 은 2.6.32 - 431 이상 (즉 > = CentOS 6.5, docker 를 실행 할 때 실제 알림 3.10.0 이상) 이다.주의해 야 할 것 은 CentOS 6.5 와 7.0 의 설치 가 조금씩 다르다 는 것 이다. CentOS 6. x 에 있 는 Docker 의 설치 패 키 지 는 docker - io 이 고 Fedora epel 라 이브 러 리 에서 유래 한 것 이다. 이 창 고 는 발행 판 에 포함 되 지 않 은 소프트웨어 를 대량으로 유지 하기 때문에 먼저 EPEL 을 설치 해 야 한다. CentOS 7. x 의 Docker 는 공식 미 러 소스 의 Extras 창고 (CentOS - base. repo 의 [extras] 에 직접 포함 되 어 있다.절 enable = 1 활성화).
커 널 버 전이 너무 낮 아...커 널 을 업그레이드 해 야 합 니 다.
설 치 된 nginx 버 전 은 다음 과 같 습 니 다.
nginx-1.14.0.tar.gz
LuaJIT-2.0.5.tar.gz
ngx_devel_kit-0.3.0.tar.gz
lua-nginx-module-0.10.13.tar.gz
ngx_cache_purge-2.3.tar.gz
사용 하 는 docker 버 전 은 다음 과 같 습 니 다.
Docker version 1.7.1, build 786b29d/1.7.1
2. 커 널 업그레이드
 (1) 커 널 버 전 보기
$ uname -r

\ # 결과: 2.6.32 - 431. el6. x8664. 위의 수 요 를 만족 시 키 지 못 하기 때문에 커 널 을 업그레이드 해 야 합 니 다.
(2) 다음 두 파일 을 다운로드 합 니 다.
kernel-ml-aufs-3.10.5-3.el6.x86_64.rpm.gz
kernel-ml-aufs-devel-3.10.5-3.el6.x86_64.rpm.gz

(3) 、 스트레스 해소:
gunzip kernel-ml-aufs-3.10.5-3.el6.x86_64.rpm.gz
gunzip kernel-ml-aufs-devel-3.10.5-3.el6.x86_64.rpm.gz

(4) 、 설치:
rpm -ivh kernel-ml-aufs-3.10.5-3.el6.x86_64.rpm kernel-ml-aufs-devel-3.10.5-3.el6.x86_64.rpm

(5) 、 설정 수정:
vi /etc/grub.conf

default = 1 을 default = 0 으로 바 꾸 고 컴퓨터 (reboot) 를 다시 시작 한 다음 uname - r 를 봅 니 다.
3. docker 설치
    epel:
yum install epel-release
     docker:
yum install docker-io

4. Docker 시작
service docker start

프로 세 스 보기
ps -ef | grep docker

5. Dockerfile Nginx 미 러 구축
 / home / docker / 디 렉 터 리 에 Dockerfile 파일 을 만 듭 니 다. 내용 은 다음 과 같 습 니 다.
# nginx Dockerfile
# Version 1.0
# author fendo
 
# Base images     
FROM centos:centos7
#FROM hub.c.163.com/netease_comb/centos:7

#      
RUN yum -y update
RUN yum -y install  gcc gcc-c++ autoconf automake make
RUN yum -y install  zlib zlib-devel openssl* pcre* wget lua-devel

#MAINTAINER      
MAINTAINER fendo [email protected]
 
#ADD    url    ,       
ADD http://nginx.org/download/nginx-1.14.0.tar.gz /tmp/
#LuaJIT 2.1
#ADD http://luajit.org/download/LuaJIT-2.0.5.tar.gz /tmp/
ADD https://github.com/LuaJIT/LuaJIT/archive/v2.0.5.tar.gz /tmp/
#ngx_devel_kit(NDK)  
ADD https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz /tmp/
#lua-nginx-module   
ADD https://github.com/openresty/lua-nginx-module/archive/v0.10.13.tar.gz /tmp/
#nginx ngx_cache_purge  
ADD http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz  /tmp/


#    
WORKDIR  /tmp 

#  LuaJIT 2.0.5
#RUN wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz -P /tmp/
RUN tar zxf v2.0.5.tar.gz
WORKDIR  /tmp/LuaJIT-2.0.5
#RUN cd LuaJIT-2.0.5
RUN make PREFIX=/usr/local/luajit 
RUN make install PREFIX=/usr/local/luajit

#  ngx_devel_kit(NDK)
WORKDIR  /tmp
RUN tar -xzvf v0.3.0.tar.gz
RUN cp -r ngx_devel_kit-0.3.0/ /usr/local/src/

#  lua-nginx-module  
RUN tar -xzvf v0.10.13.tar.gz
RUN cp -r lua-nginx-module-0.10.13/ /usr/local/src/

#  nginx ngx_cache_purge  
RUN tar -xzvf ngx_cache_purge-2.3.tar.gz
RUN cp -r ngx_cache_purge-2.3/ /usr/local/src/

#      
RUN export LUAJIT_LIB=/usr/local/lib
RUN export LUAJIT_INC=/usr/local/include/luajit-2.0

RUN mkdir -p {/usr/local/nginx/logs,/var/lock}

#    Nginx
RUN useradd -M -s /sbin/nologin nginx
RUN tar -zxvf nginx-1.14.0.tar.gz
RUN mkdir -p /usr/local/nginx
RUN cd /tmp/nginx-1.14.0 \
	&& ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx \
	--error-log-path=/usr/local/nginx/logs/error.log \
	--http-log-path=/usr/local/nginx/logs/access.log \
	--pid-path=/usr/local/nginx/logs/nginx.pid \
	--lock-path=/var/lock/nginx.lock \
	--with-ld-opt="-Wl,-rpath,/usr/local/luajit/lib" \
	--with-http_stub_status_module \
	--with-http_ssl_module \
	--with-http_sub_module \
	--add-module=/usr/local/src/lua-nginx-module-0.10.13 \
	--add-module=/usr/local/src/ngx_devel_kit-0.3.0 \
	--add-module=/usr/local/src/ngx_cache_purge-2.3 \
	&& make && make install
#    
#--prefix     nginx        
#--add-module          ,     fdfs nginx  
#--with..._module      nginx  ,      http_ssl_module  	

RUN /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
RUN ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

#EXPOSE     
EXPOSE 80 443
 
#CMD       
#CMD ["nginx"]
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

이 디 렉 터 리 에서 다음 명령 을 실행 하여 미 러 를 구축 합 니 다:
docker build -t centos/nginx:1.14 .

그리고 용기 보기:
docker images

6. 미 러 시작
다음 두 가지 방식 으로 미 러 를 시작 할 수 있 습 니 다:
docker run -itd -p 192.168.1.100:80:80 centos_nginx:1.14 /bin/bash
docker run -itd -p 192.168.1.100:80:80 -p 192.168.1.100:443:443 centos_nginx:1.14 /usr/local/nginx/sbin/nginx -g "daemon off;"

시작 에 실패 하면 미 러 에 들 어가 명령 / usr / local / nginx / sbin / nginx 를 통 해 nginx 를 시작 할 수 있 습 니 다.
7. 거울 에 들어가다
미 러 를 시작 하면 다음 명령 을 통 해 미 러 에 들 어 갈 수 있 습 니 다.
docker attach    ID

미 러 에서 종료 하려 면 ctrl + d 를 통 해 종료 하면 바로 미 러 가 멈 추 므 로 Ctrl + P + Q 를 눌 러 콘 솔 을 종료 하고 docker ps 를 통 해 확인 해 야 합 니 다.
8. Nginx 방문
위 에 연 결 된 포트 를 통 해 접근:
192.168.1.100:80:80

9. 상용 명령
1. 모든 container 를 중지 해 야 이미지 가 삭 제 됩 니 다.
docker stop $(docker ps -a -q)

모든 container 를 삭제 하려 면 명령 을 추가 하 십시오:
docker rm $(docker ps -a -q)

2. 현재 어떤 이미지 가 있 는 지 확인
docker images

3. images 삭제, image 의 id 를 통 해 누 구 를 삭제 할 지 지정
docker rmi 

untagged images 를 삭제 하려 면 id 가 있 는 image 를 사용 할 수 있 습 니 다.
docker rmi $(docker images | grep "^" | awk "{print $3}")

모든 이미 지 를 삭제 하려 면
docker rmi $(docker images -q)

좋은 웹페이지 즐겨찾기