当前位置: 首页 > news >正文

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

网页查看

创建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更改即可

http://www.lryc.cn/news/182989.html

相关文章:

  • 关于使用 uniapp Vue3 开发分享页面 语法糖 setup 开发获取ref踩坑
  • Springboot+vue的时间管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。
  • 企业如何实时监管员工聊天转账行为
  • 2.2.3.1vim + ctags + cscope + taglist
  • JAVA面经整理(4)
  • Python3数据科学包系列(一):数据分析实战
  • 【LittleXi】【MIT6.S081-2020Fall】Lab: locks
  • 图像压缩:Transformer-based Image Compression with Variable Image Quality Objectives
  • C++ 类和对象篇(四) 构造函数
  • Swing程序设计(5)绝对布局,流布局
  • linux基础知识之文件系统 df/du/fsck/dump2fs
  • 华为云云耀云服务器L实例评测|Elasticsearch的Docker版本的安装和参数设置 端口开放和浏览器访问
  • 8章:scrapy框架
  • 软件工程与计算总结(二)软件工程的发展
  • Appium开发
  • EGL函数翻译--eglInitialize
  • 二项分布以及实现
  • css自学框架之幻灯片展示效果
  • 坦克世界WOT知识图谱三部曲之爬虫篇
  • Idea上传项目到gitlab并创建使用分支
  • 3D孪生场景搭建:参数化模型
  • 最短路径专题6 最短路径-多路径
  • 【Linux】Linux常用命令—文件管理(上)
  • 【Python】基于OpenCV人脸追踪、手势识别控制的求生之路FPS游戏操作
  • 约束优化算法(optimtool.constrain)
  • 如何查看postgresql中的数据库大小?
  • 使用python-opencv检测图片中的人像
  • 项目进展(三)-电机驱动起来了,发现了很多关键点,也遇到了一些低级错误,
  • 目标检测算法改进系列之Backbone替换为RepViT
  • 学习 Kubernetes的难点和安排