案例
通过dockerfile构建镜像步骤 1、创建一个目录 2、在目录下创建
Dockerfile
文件以及其他文件 3、通过docker build
构建镜像 4、通过构建的镜像启动容器
栗子:
1、创建一个目录:
mkdir /usr/local/rw_test
2、编辑Dockerfile文件:
vi Dockerfile
3、编辑内容如下
# pull down centos image
FROM docker.io/centos:7
LABEL steel
# install nginx
RUN yum install -y pcre pcre-devel openssl openssl-devel gcc gcc+ gcc-c++ wget vim net-tools automake autoconf make
# 创建一个www用户(此步骤用不到可以省略)
RUN useradd www -M -s /sbin/nologin
# 下载nginx包并解压到 /usr/local/src 目录
RUN cd /usr/local/src && wget https://nginx.org/download/nginx-1.18.0.tar.gz && tar -zxvf nginx-1.18.0.tar.gz
# 配置nginx
RUN cd /usr/local/src/nginx-1.18.0 && ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module && make && make install
# 若不创建用户则用下方配置nginx
RUN cd /usr/local/src/nginx-1.18.0 && ./configure --with-http_stub_status_module --with-http_ssl_module && make && make install
# 启动nginx
ENTRYPOINT /usr/local/nginx/sbin/nginx && tail -f /usr/local/nginx/logs/access.log
4、在 rw_test 目录下构建镜像
docker build -t rw_nginx --rm=true .
-t 表示选择指定生成镜像的用户名,仓库名和tag
--rm=true 表示指定在生成镜像过程中删除中间产生的临时容器(文件)。
注意:上面构建命令中最后的.符号不要漏了,表示使用当前目录下的 Dockerfile 构建镜像
5、测试
打开后就能查看到nginx默认的页面,若想配置为发布的项目,则需修改nginx配置,配置路径/usr/local/nginx/conf/nginx.conf
,
修改后重新启动 nginx,命令/usr/local/nginx/sbin/nginx -s reload
# 后台运行容器
docker run -it -d --name test_nginx -p 5000:80 rw_nginx /bin/bash
# 进入容器
docker exec -it test_nginx /bin/bash
# 访问
通过浏览器访问:http://127.0.0.1:5000
拉取的是centos7版本的镜像,经测试,拉取centos:latest最新版(centos8)执行命令时会出现Unable to find a match: gcc+