docker 1.3之在容器里安装nginx服务
一。1.通过docker部署nginx
[root@elk ~]# docker exec -it nginx /bin/bash
[root@7d0d550d72c5 /]#
n --name=nginx -p 80 -it centos
2.查询nginx端口映射
[root@elk ~]# docker ps|grep nginx 7d0d550d72c5 centos "/bin/bash" 9 days ago Up 9 days 0.0.0.0:49153->80/tcp, :::49153->80/tcp nginx
3.进入nginx容器里安装nginx
4.查看下容器ip
[root@7d0d550d72c5 /]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 14: eth0@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever
5.安装nginx
yum install -y nginx
6.创建等下访问nginx的页面
vim /var/www/html/index.html <html> <head> <title>nginx in docker</title> </head> <body> <h1>hello,My Name duoduo</h1> </body> </html>
7.配置nginx的conf文件下的访问路径
[root@7d0d550d72c5 /]# vim /etc/nginx/nginx.conf root /var/www/html/ ;
8.启动nginx并测试是否能访问到
[root@7d0d550d72c5 ~]# /usr/sbin/nginx
两种访问方式:(1)容器ip+容器的端口172.17.0.3:80
(2)宿主机ip+宿主机映射容器端口,172.17.0.1:49153 可通过docker ps |grep nginx
7d0d550d72c5 centos "/bin/bash" 9 days ago Up 9 days 0.0.0.0:49153->80/tcp, :::49153->80/tcp nginx
二
1.dockerfile构建镜像可以使用docker build命令
指定镜像版本,先查看下用哪一个镜像,我这边指定centos TAG是7这个版本
案例:
FROM centos:7 #FROM +镜像名
MAINTAINER zhao #作者信息
RUN yum install wget -y #安装wget
RUN yum install nginx -y #安装nginx
COPY index.html /usr/share/nginx/html/
EXPOSE 80 #声明端口,可以是多个EXPOSE <端口1> [<端口2>...]
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
CMD,类似于 RUN 指令,用于运行程序,RUN是在构建镜像时运行,CMD是在用镜像构建容器后被调用
用法:CMD ''echo'' ''hello docker''
例:
[root@hd1 ~]# mkdir /root/dockerfile/test -p [root@hd1 test]# cat dockerfile #first dockerfile FROM centos MAINTAINER duoduo RUN yum clean all RUN yum install -y make zlib zlib-devel gcc-c++ nginx libtool openssl openssl-devel-y
EXPOSE 80
CMD ["/usr/sbin/nginx","-g","daemon off;"]
2.构建镜像
[root@elk test]# docker build -t nginx:v1 . # .表示当前目录,也可以写绝对路径 docker build -t nginx:v2 /root/dockerfile/test/dockerfile
3.查看构建好的镜像
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?