一、手动构建镜像:
首先运行一个centos的容器,在上面安装nginx,然后把这个容器做成一个新的镜像,通过这个新的镜像就可以重新启动一个新的容器
docker pull centos
docker run –name nginx-man -it centos //运行centos容器,此处进入容器
yum install -y wget gcc gcc-c++ make openssl -devel //安装这些跟nginx相关的依赖包
wget http://nginx.org/download/nginx-1.9.3.tar.gz //下载nginx安装包
wget prec安装包的网址 //下载prc安装包
mv *.gz /usr/local/src //移动目录
tar zxf pcre-8.37.tar.gz //解压
tar zxf nginx-1.9.3.tar.gz
cd nginx-1.9.3
useradd -s /sbin/nologin -M www //创建一个www的用户,-s表示指定用户所用的shell,此处为/sbin/nologin,表示不登录,-M表示不创建用户主目录,最后的www表示用户名。
./configure –prefix=/usr/local/nginx –user=www –group=www –with-http_ssl_module –with-http_stub_status_module –with-pcre=/usr/local/src/pcre-8.37 //安装nginx
make
make install
vi /usr/local/nginx/conf/nginx.conf 在里面加一行 daemon off ; //让这个容器一起来就在前台运行nginx
exit //退出容器
docker ps -l //查看容器id
docker commit -m “my nginx” 容器id chenjia/my-nginx:v1 //根据刚刚的容器创建镜像
docker images //查看我们刚刚创建的镜像
docker run -d -p 99:80 chenjia/my-nginx:v1 /usr/local/nginx/sbin/nginx //启动我们刚刚运行的容器
二、Dockerfile创建镜像
dockerfile包括以下几个部分
基础镜像信息
维护者信息
镜像操作指令
容器启动时执行命令
mkdir /opt/docker-file/nginx
cd /opt/docker-file/nginx //在这个目录下进行操作
vi Dockerfile //下面是dockerfile里面的内容
this is my first Dockerfile
Version 1.0
Author:chenjia
Base images
FROM centos
MAINTAINER
MAINTAINER chenjia
ADD
ADD prc-8.37.tar.gz /usr/local/src //这个安装包提前下好放在当前目录
ADD nginx-1.9.3.tar.gz /usr/local/src
RUN
RUN yum install -y wget gcc gcc-c++ make openssl -devel
RUN useradd -s /sbin/nologin -M www
WORKDIR
WORKDIR /usr/local/src/nginx-1.9.3 //进入到这个目录
RUN ./configure –prefix=/usr/local/nginx –user=www –group=www –with-http_ssl_module –with-http_stub_status_module –with-pcre=/usr/local/src/pcre-8.37 &&make &&make install
RUN echo “daemon off;” >> /usr/local/nginx/conf/nginx.conf
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
CMD [“nginx”]
docker build -t nginx-file:v1 . //用当前目录下的dockerfile构建镜像
dockerfile命令总结: