CentOS7 Docker Nginx部署及运行详解

时间:2022-05-12 01:48:46

网上找了一些资料部署,出现不一样的问题,现在总结一下自己的部署流程。

1、资源准备

dockerfile文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# "ported" by adam miller <maxamillion@fedoraproject.org> from
#  https://github.com/fedora-cloud/fedora-dockerfiles
#
# originally written for fedora-dockerfiles by
#  scollier <scollier@redhat.com>
 
from centos:centos7
maintainer the centos project <cloud-ops@centos.org>
 
run yum -y update; yum clean all
run yum -y install epel-release tar ; yum clean all
run yum -y install nginx ; yum clean all
add nginx.conf /opt/deploy/nginx/nginx.conf
run echo "daemon off;" >> /opt/deploy/nginx/nginx.conf
#run curl https://git.centos.org/sources/httpd/c7/acf5cccf4afaecf3afeb18c50ae59fd5c6504910 \
#  | tar -xz -c /usr/local/nginx/html \
#  --strip-components=1
#run sed -i -e 's/apache/nginx/g' -e '/apache_pb.gif/d' \ 
#  /usr/local/nginx/html/index.html
 
expose 80
 
#cmd [ "/usr/local/nginx/sbin" ]

注意:路径需要在系统上面存在以及对应

nginx.conf文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# for more information on configuration, see:
#  * official english documentation: http://nginx.org/en/docs/
#  * official russian documentation: http://nginx.org/ru/docs/
 
user nginx;
worker_processes 1;
 
error_log /usr/logs/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
 
pid    /run/nginx.pid;
 
 
events {
  worker_connections 1024;
}
 
 
http {
  include    mime.types;
  default_type application/octet-stream;
 
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
           '$status $body_bytes_sent "$http_referer" '
           '"$http_user_agent" "$http_x_forwarded_for"';
 
  access_log /usr/logs/nginx/access.log main;
 
  sendfile    on;
  #tcp_nopush   on;
 
  #keepalive_timeout 0;
  keepalive_timeout 65;
 
  #gzip on;
 
  # load modular configuration files from the /etc/nginx/conf.d directory.
  # see http://nginx.org/en/docs/ngx_core_module.html#include
  # for more information.
  #include /etc/nginx/conf.d/*.conf;
 
  index  index.html index.htm;
 
  server {
    listen    80;
    server_name localhost;
    root     /usr/share/nginx/html;
 
    #charset koi8-r;
 
    #access_log /var/log/nginx/host.access.log main;
 
    location / {
      autoindex on;
    }
 
    # redirect server error pages to the static page /40x.html
    #
    error_page 404       /404.html;
    location = /40x.html {
    }
 
    # redirect server error pages to the static page /50x.html
    #
    error_page  500 502 503 504 /50x.html;
    location = /50x.html {
    }
 
    # proxy the php scripts to apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #  proxy_pass  http://127.0.0.1;
    #}
 
    # pass the php scripts to fastcgi server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #  root      html;
    #  fastcgi_pass  127.0.0.1:9000;
    #  fastcgi_index index.php;
    #  fastcgi_param script_filename /scripts$fastcgi_script_name;
    #  include    fastcgi_params;
    #}
 
    # deny access to .htaccess files, if apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #  deny all;
    #}
  }
 
 
  # another virtual host using mix of ip-, name-, and port-based configuration
  #
  #server {
  #  listen    8000;
  #  listen    somename:8080;
  #  server_name somename alias another.alias;
  #  root     html;
 
  #  location / {
  #  }
  #}
 
 
  # https server
  #
  #server {
  #  listen    443;
  #  server_name localhost;
  #  root     html;
 
  #  ssl         on;
  #  ssl_certificate   cert.pem;
  #  ssl_certificate_key cert.key;
 
  #  ssl_session_timeout 5m;
 
  #  ssl_protocols sslv2 sslv3 tlsv1;
  #  ssl_ciphers high:!anull:!md5;
  #  ssl_prefer_server_ciphers  on;
 
  #  location / {
  #  }
  #}
 
}

注意:路径需要在系统上面存在以及对应

2、执行构建镜像命令

 

复制代码 代码如下:

[root@localhost nginx]# sudo docker build --rm --tag os7/nginx:centos7 . 

 

执行结果截图:

CentOS7 Docker Nginx部署及运行详解

3、查看镜像是否安装构建成功 docker images

CentOS7 Docker Nginx部署及运行详解

4、创建容器 docker run -i -t -d -p 192.168.32.129:81:80 os7/nginx /bin/bash

注意:192.168.32.129这个ip的话,则需要在/etc/hosts中添加

192.168.32.129     localhost

5、查看容器是否创建成功并启动 docker ps

CentOS7 Docker Nginx部署及运行详解

6、测试是否成功访问 curl http://192.168.32.129:81

CentOS7 Docker Nginx部署及运行详解

会出现这个拒绝连接,那怎么办呢?有办法解决的,我们先进入该容器里面

7、进入容器 docker exec -i -t small_hodgkin /bin/sh

CentOS7 Docker Nginx部署及运行详解

8、接着在容器里面执行(直接输入即可)

nginx

9、在容器外面执行 curl http://192.168.32.129:81

CentOS7 Docker Nginx部署及运行详解

成功了。

10、再到虚拟机外面通过浏览器访问

CentOS7 Docker Nginx部署及运行详解

到此为止就成功了。

参考资料:https://github.com/centos/centos-dockerfiles

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://blog.csdn.net/lk10207160511/article/details/51449762