Docker通过Dockerfile创建Redis、Nginx--详细过程

这篇具有很好参考价值的文章主要介绍了Docker通过Dockerfile创建Redis、Nginx--详细过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建Nginx镜像

我们先创建一个目录,在目录里创建Dockerfile

[root@docker-3 ~]# mkdir mynginx
[root@docker-3 ~]# cd mynginx
[root@docker-3 ~]# vim Dockerfile

Dockerfile的内容

FROM daocloud.io/library/centos:7
RUN buildDeps='readline-devel pcre-devel openssl-devel gcc telnet wget curl make' && \
    yum -y install $buildDeps && \
    yum clean all
RUN wget https://nginx.org/download/nginx-1.24.0.tar.gz && \
    tar zfx nginx-1.24.0.tar.gz -C /opt
RUN cd /opt/nginx-1.24.0 && \
    mkdir /usr/local/nginx && \
    ./configure --prefix=/usr/local/nginx \
    --with-http_ssl_module \
    --with-http_stub_status_module && \
    make && make install && \
    rm -rf /usr/local/nginx/html/* && \
    echo "nihao" > /usr/local/nginx/html/index.html && \
    cd / && rm -rf /opt/nginx-1.24.0 && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV PATH /usr/local/nginx/sbin:$PATH
WORKDIR /usr/local/nginx
EXPOSE 80
CMD ["nginx","-g","daemon off;"]

开始构建,别忘了最后的  . 

[root@docker-3 mynginx]# docker build -t nginx:v1 .

构建过程

[+] Building 241.2s (9/9) FINISHED                                                                                  docker:default
 => [internal] load build definition from Dockerfile                                                                          0.0s
 => => transferring dockerfile: 824B                                                                                          0.0s
 => [internal] load .dockerignore                                                                                             0.0s
 => => transferring context: 2B                                                                                               0.0s
 => [internal] load metadata for daocloud.io/library/centos:7                                                                 1.3s
 => CACHED [1/5] FROM daocloud.io/library/centos:7@sha256:fe2347002c630d5d61bf2f28f21246ad1c21cc6fd343e70b4cf1e5102f8711a9    0.0s
 => [2/5] RUN buildDeps='readline-devel pcre-devel openssl-devel gcc telnet wget curl make' &&     yum -y install $buildDe  210.5s
 => [3/5] RUN wget https://nginx.org/download/nginx-1.24.0.tar.gz &&     tar zfx nginx-1.24.0.tar.gz -C /opt                  7.8s
 => [4/5] RUN cd /opt/nginx-1.24.0 &&     mkdir /usr/local/nginx &&     ./configure --prefix=/usr/local/nginx     --with-ht  21.0s
 => [5/5] WORKDIR /usr/local/nginx                                                                                            0.0s
 => exporting to image                                                                                                        0.6s
 => => exporting layers                                                                                                       0.6s
 => => writing image sha256:0cef6f4d7d9fdb2438160b5df566e442fe72b2eb04150ac0504d5af34472fb9d                                  0.0s
 => => naming to docker.io/library/nginx:v1                                                                                   0.0s

查看镜像

[root@docker-3 mynginx]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
nginx        v1        0cef6f4d7d9f   10 seconds ago   325MB

运行镜像

[root@docker-3 mynginx]# docker run -itd --name nginxv1 -p 80:80 nginx:v1
3ba682f5bb1f12b6c318903e6d8e83fe22c7e9769c196d361862152da2d4c29d
[root@docker-3 mynginx]# docker ps
CONTAINER ID   IMAGE      COMMAND                   CREATED         STATUS         PORTS                               NAMES
3ba682f5bb1f   nginx:v1   "nginx -g 'daemon of…"   7 seconds ago   Up 7 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   nginxv1

网页查看

Docker通过Dockerfile创建Redis、Nginx--详细过程,docker,nginx,jenkins

创建Redis镜像

创建目录,在目录里创建Dockerfile

[root@docker-2 ~]# mkdir myRedis
[root@docker-2 ~]# cd myRdis
[root@docker-2 ~]# vim Dockerfile
FROM daocloud.io/library/centos:7
RUN yum -y install gcc gcc-c++ net-tools make wget \
    && mkdir -p /data/application/ \
    && wget https://download.redis.io/releases/redis-6.2.7.tar.gz \
    && tar zxf redis-6.2.7.tar.gz -C  /data/application/
RUN cd /data/application \
    && mv redis-6.2.7/ redis \
    && cd redis/ \
    && make \
    && sed -i -e 's/bind 127.0.0.1 -::1/bind 0.0.0.0/g' ./redis.conf
EXPOSE 6379
ENTRYPOINT /data/application/redis/src/redis-server /data/application/redis/redis.conf

构建

[root@docker-2 myRedis]# docker build -t redis:v1 .

构建过程

[+] Building 0.1s (7/7) FINISHED                                                                                    docker:default
 => [internal] load build definition from Dockerfile                                                                          0.0s
 => => transferring dockerfile: 591B                                                                                          0.0s
 => [internal] load .dockerignore                                                                                             0.0s
 => => transferring context: 2B                                                                                               0.0s
 => [internal] load metadata for daocloud.io/library/centos:7                                                                 0.0s
 => [1/3] FROM daocloud.io/library/centos:7                                                                                   0.0s
 => CACHED [2/3] RUN yum -y install gcc gcc-c++ net-tools make wget     && mkdir -p /data/application/     && wget https://d  0.0s
 => CACHED [3/3] RUN cd /data/application     && mv redis-6.2.7/ redis     && cd redis/     && make     && mkdir /data/appli  0.0s
 => exporting to image                                                                                                        0.0s
 => => exporting layers                                                                                                       0.0s
 => => writing image sha256:15c74862351b269ae259a12d6c8d43a4e68dd97db5363acdd7e965c885b33a15                                  0.0s
 => => naming to docker.io/library/redis:v1                                                                                   0.0s

运行容器

[root@docker-2 myRedis]# vim Dockerfile 
[root@docker-2 myRedis]# docker images
REPOSITORY                   TAG       IMAGE ID       CREATED       SIZE
redis                        v1        15c74862351b   6 days ago    672MB
[root@docker-2 myRedis]# docker run -itd --name redis1 -p 6379:6379 redis:v1
dc76e2462b7ae0a63ed673bc2f247302a1bec336bc6320a5f67c5cd2051ebf41
[root@docker-2 myRedis]# docker ps
CONTAINER ID   IMAGE      COMMAND                   CREATED         STATUS         PORTS                                       NAMES
dc76e2462b7a   redis:v1   "/bin/sh -c '/data/a…"   4 seconds ago   Up 3 seconds   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   redis1

进入容器运行Redis

[root@docker-2 myRedis]# docker exec -it redis1 /bin/sh
sh-4.2# ls
anaconda-post.log  bin	data  dev  etc	home  lib  lib64  media  mnt  opt  proc  redis-6.2.7.tar.gz  root  run	sbin  srv  sys	tmp  usr  var
sh-4.2# cd data/application/redis/
sh-4.2# ./src/redis-cli 
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> 

我这里只修改了配置文件的bind,  如果有需要其他使用sed更改即可文章来源地址https://www.toymoban.com/news/detail-728710.html

到了这里,关于Docker通过Dockerfile创建Redis、Nginx--详细过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot项目部署(Docker)——通过Dockerfile将打包好的jar包创建成镜像 & 在IDEA中配置docker,一键启动容器 & 用swagger进行测试

    1.Dockerfile命令初识,CMD…; 2.idea配置docker,图形化界面; 3.编写Dockerfile把jar包制作成镜像,并用idea一键生成和启动容器; 4.在Linux中测试,在宿主机用swagger进行测试; SpringBoot项目部署(jar包)——项目用maven打包成jar包 windows + Linux平台运行 Linux安装java 遇到的问题 Docker是一

    2024年02月05日
    浏览(51)
  • Docker容器:docker镜像的创建及dockerfile

    创建镜像有三种方法:基于现有镜像创建、基于本地模板创建及基于dockerfile创建 1.1 启动镜像 1.2 生成新镜像 2.1 OPENVZ 下载模板 2.2 导入容器生成镜像 3.1 dockerfile结构及分层 (1)dockerfile结构大致分为4个部分 基础镜像信息 维护者信息 镜像操作指令 容器启动时执行指令 Dockerfil

    2024年02月11日
    浏览(53)
  • docker dockerfile部署contos7、nginx

    文件名:Dockerfile 运行dockerfile文件 启动nginx 安装php依赖 编译安装php 配置php相关文件 启动Php

    2024年02月15日
    浏览(42)
  • Docker应用-使用Dockerfile创建镜像

    Dockerfile是由一行行命令语句组成并且支持以#开头的注释行。一般而言Dockerfile分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时的执行指令。比如: 其中,一开始必须指明所基于的镜像名称,接下来一般会说明维护者的信息。后面是镜像的操作指令,例

    2024年02月21日
    浏览(49)
  • 【云原生】Docker镜像的创建,Dockerfile

    创建镜像有三种方法,分别为【基于已有镜像创建】、【基于本地模板创建】以及【基于Dockerfile创建】。  通过导入操作系统模板文件可以生成镜像,模板可以从OPENVZ 开源项目下载,下载地址为:   openvz.org/ Download/template/precreated  联合文件系统(UnionFS )  Union文件系统是

    2024年02月15日
    浏览(49)
  • 【Docker】初识 Docker,Docker 基本命令的使用,Dockerfile 自定义镜像的创建

    在部署大型项目时,常常面临多组件、复杂的依赖关系和不同环境之间的差异,这些因素可能导致以下问题: 复杂的依赖关系: 由于项目组件众多,各个组件之间的依赖关系变得复杂,容易出现版本不匹配或兼容性问题。 兼容性问题: 项目在不同的环境中可能会遇到兼容性

    2024年02月05日
    浏览(57)
  • Docker容器与虚拟化技术:Docker镜像创建、Dockerfile实例

    目录 一、理论 1.Docker镜像的创建方法 2.Docker镜像结构的分层 3.Dockerfile 案例 4.构建Systemctl镜像(基于SSH镜像) 5.构建Tomcat 镜像 6.构建Mysql镜像 二、实验 1.Docker镜像的创建 2. Dockerfile 案例 3.构建Systemctl镜像(基于SSH镜像) 三、问题 1.nginx网页打不开  2.Apache容器启动一直为Ex

    2024年02月12日
    浏览(62)
  • Docker容器:docker数据管理、镜像的创建及dockerfile案例

    因为数据写入后如果停止了容器,再开启数据就会消失,使用数据管理的数据卷挂载,实现了数据的持久化,重启数据还会存在;还有一种方式,容器之间共享文件即相当于有个备份,也会解决停止容器后数据消失的问题。 管理 Docker 容器中数据主要有两种方式:数据卷(

    2024年02月12日
    浏览(52)
  • docker容器:docker镜像的三种创建方法及dockerfile案例

    目录 一、基于现有镜像创建 1、创建启动镜像 2、生成新镜像 二、基于本地模板创建  1、OPENVZ 下载模板 2、导入容器生成镜像 三、基于dockerfile创建  1、dockerfile结构及分层 2、联合文件系统 3、docker镜像加载原理 4、dockerfile操作常用的指令 (1)FROM指令 (2)MAINTAINER 指令 (3)RUN指令

    2023年04月20日
    浏览(54)
  • docker 镜像的创建dockerfile 和数据卷

    基于现有的镜像创建镜像 docker commit 基于模板创建镜像 模板可以从OPENVZ开源项目下载 基于dockerfile创建 Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)

    2024年02月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包