练习:

Docker 安装 Nginx

#1. 搜索镜像
search 建议在docker hub官网上查阅

#2. 拉取镜像
pull

#3. 启动容器
docker run -d --name nginx01 -p 3344:80 nginx

[root@iZ2ze3omirvragaujkhihjZ /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 11 days ago 141MB
mysql 5.7 c20987f18b13 2 weeks ago 448MB
centos latest 5d0da3dc9764 3 months ago 231MB

# -d 后台运行
# --name 给容器命名
# -p 宿主机端口:容器内部端口
[root@iZ2ze3omirvragaujkhihjZ /]# docker run -d --name nginx01 -p 3344:80 nginx
cd9dd7e9fd6b11db0d1482585dcb537e0bc466c0d5a11f68c35c8604cd5b2ed5

##从docker-19-数据卷目录挂载回来补充的##
[root@iZ2ze3omirvragaujkhihjZ home]# docker run -d -p 3344:80 -v /home/nginx/conf:/etc/nginx -v /home/nginx/html_page:/usr/share/nginx --name nginx01 nginx

[root@iZ2ze3omirvragaujkhihjZ /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd9dd7e9fd6b nginx "/docker-entrypoint.…" 9 seconds ago Up 8 seconds 0.0.0.0:3344->80/tcp, :::3344->80/tcp nginx01

# 由于安装linux的时候很多时候是没有安装桌面的,也意味着没有浏览器,因此这个方法也经常用于测试一台服务器是否可以到达一个网站
[root@iZ2ze3omirvragaujkhihjZ /]# curl localhost:3344
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

# 4. 进入容器
[root@iZ2ze3omirvragaujkhihjZ /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd9dd7e9fd6b nginx "/docker-entrypoint.…" 32 minutes ago Up 32 minutes 0.0.0.0:3344->80/tcp, :::3344->80/tcp nginx01
[root@iZ2ze3omirvragaujkhihjZ /]# docker exec -it nginx01 /bin/bash

# 查看nginx路径
## 配置文件在:/etc/nginx
## html页面在:/usr/share/nginx
root@cd9dd7e9fd6b:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx

端口暴露的概念

10_12_Docker—练习一:部署Nginx【curl】_html

容器里面的应用部署出来
思考问题:我们每次改动nginx配置文件,都需要进入容器内部吗?这是十分麻烦的,我要是可以在容器外部提供一个映射路径,达到在容器外修改文件名,容器内部就可以自动修改?
解决:-v 数据卷!