Docker容器内部署静态网站

设置容器的映射端口
-P 暴露所有端口进行映射
-p 暴露指定容器端口

run [-P] [-p]

四种方式

// containerPort
// 只指定容器端口,宿主机的端口是随机的
docker run -p 80 -i -t mydocker1 /bin/bash 
// hostPort
// 同时指定了 宿主机端口 和 容器端口
docker run -p 8080:80 -i -t mydocker1 /bin/bash
// ip::containerPort
// 指定ip 和容器的端口
docker run -p 0.0.0.0:80 -i -t mydocker1 /bin/bash
// ip::hostPort
// ip,宿主机和容器端口同时指定
docker run -p 0.0.0.0:8080:80 -i -t mydocker1 /bin/bash

示例: Nginx部署
步骤:

  • 创建映射80端口的交互式容器
  • 安装 Nginx
  • 安装vim 编辑器
  • 创建静态页面
  • 修改 Nginx配置文件
  • 运行Nginx
  • 验证网页访问

创建映射80端口的交互式容器

docker run -p 80 --name web -i -t ubuntu /bin/bash

安装 Nginx

建议换阿里云源

apt install -y nginx

安装vim 编辑器

apt install vim

创建静态页面

mkdir -p /var/www/html
cd /var/www/html
vim index.html

修改 Nginx配置文件

root@e6bb5696e362:/var/www/html# whereis nginx
nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginx
root@e6bb5696e362:/var/www/html# ls /etc/nginx
conf.d          koi-utf     nginx.conf    sites-available  uwsgi_params
fastcgi.conf    koi-win     proxy_params  sites-enabled    win-utf
fastcgi_params  mime.types  scgi_params   snippets
root@e6bb5696e362:/var/www/html# ls /etc/nginx/sites-enabled/
default
root@e6bb5696e362:/var/www/html# vim /etc/nginx/sites-enabled/default

Docker容器内部署静态网站_第1张图片
nginx配置文件

root 指定路径已经是正确的就不用修改。

运行Nginx

root@e6bb5696e362:/var/www/html# nginx
root@e6bb5696e362:/var/www/html# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 16:16 ?        00:00:00 /bin/bash
root      1249     1  0 16:45 ?        00:00:00 nginx: master process nginx
www-data  1250  1249  0 16:45 ?        00:00:00 nginx: worker process
www-data  1251  1249  0 16:45 ?        00:00:00 nginx: worker process
root      1253     1  0 16:45 ?        00:00:00 ps -ef

让容器运在后台

CTRL + P
CTRL + Q

验证网页访问

hejing@learning:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                   NAMES
e6bb5696e362        ubuntu              "/bin/bash"         32 minutes ago      Up 32 minutes       0.0.0.0:32768->80/tcp   web
hejing@learning:~$ docker port web
80/tcp -> 0.0.0.0:32768
hejing@learning:~$ docker top web
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                7398                7382                0                   00:16               pts/19              00:00:00            /bin/bash
root                8907                7398                0                   00:45               ?                   00:00:00            nginx: master process nginx
www-data            8908                8907                0                   00:45               ?                   00:00:00            nginx: worker process
www-data            8909                8907                0                   00:45               ?                   00:00:00            nginx: worker process
hejing@learning:~$

hejing@learning:~$ curl http://127.0.0.1:32768



        
        




        

welcome to uic

//此处 省略了 其余 html 代码

浏览器打开查看


Docker容器内部署静态网站_第2张图片
效果图

使用容器地址来查看

hejing@learning:~$ docker inspect web

Docker容器内部署静态网站_第3张图片
image.png
hejing@learning:~$ curl http://172.17.0.2
Docker容器内部署静态网站_第4张图片
image.png

浏览器再打开查看

Docker容器内部署静态网站_第5张图片
image.png

停止容器 web 并重新启动容器 web, nginx并没有跟随启动

hejing@learning:~$ docker stop web
web
hejing@learning:~$ docker start -i web
root@e6bb5696e362:/# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 17:07 ?        00:00:00 /bin/bash
root        13     1  0 17:07 ?        00:00:00 ps -ef
root@e6bb5696e362:/#

// 可以使用 docker exec 命令

// 先进入守护容器
CTRL + P
CTRL + Q

hejing@learning:~$ docker exec web nginx
hejing@learning:~$ docker top web
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                9595                9578                0                   01:07               pts/19              00:00:00            /bin/bash
root                9736                1                   0                   01:11               ?                   00:00:00            nginx: master process nginx
www-data            9737                9736                0                   01:11               ?                   00:00:00            nginx: worker process
www-data            9738                9736                0                   01:11               ?                   00:00:00            nginx: worker process

停止容器重新启动,分配地址和端口可能改变

docker inspect web
Docker容器内部署静态网站_第6张图片
容器端口.png

你可能感兴趣的:(Docker容器内部署静态网站)