【Docker 系列】docker 学习 三
【Docker 系列】docker 学习 三
使用 Dcoker 部署 nginx
搜索 nginx 镜像
- 使用 docker search nginx
# docker search nginx
NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED
nginxOfficial build of Nginx.15246[OK]
jwilder/nginx-proxyAutomated Nginx reverse proxy for docker con…2053[OK]
richarvey/nginx-php-fpmContainer running Nginx + PHP-FPM capable of…815[OK]
...
- 或者在 dockerhub 上搜索 nginx,具体的版本和详细信息会更加全面,一般使用官方的
文章图片
拉取 nginx 镜像
拉取 nginx 镜像,我们这里就拉取最新版本的 nginx
# docker pull nginx
Using default tag: latest# 最新版本
latest: Pulling from library/nginx# nginx 库
33847f680f63: Pull complete#分层下载,后续会详细学习分层的原理
dbb907d5159d: Pull complete
8a268f30c42a: Pull complete
b10cf527a02d: Pull complete
c90b090c213b: Pull complete
1f41b2f2bf94: Pull complete
Digest: sha256:8f335768880da6baf72b70c701002b45f4932acae8d574dedfddaf967fc3ac90# 签名
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest# nginx真实下载路径
创建并运行容器
- 新建一个容器命名为 nginx1
- nginx 默认端口是 80,将 docker 容器中的 80 端口映射程 主机中的 8888 端口
- 设置后台运行 nginx 容器
# docker run -d --name nginx1 -p 8888:80 nginx
2772a40501571630fb6fc2305f41f7a409299c4d15595ba3dd654d73f2a5e7b6# docker ps
CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
2772a4050157nginx"/docker-entrypoint.…"2 seconds agoUp 2 seconds0.0.0.0:8888->80/tcpnginx1
验证
使用 curl 命令,访问一下 主机的 8888 端口,查看是否访问 OK
# curl localhost:8888
Welcome to nginx! - 锐客网 body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
Welcome to nginx!If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.
For online documentation and support please refer to
nginx.org.
Commercial support is available at
nginx.com.
Thank you for using nginx.
咱们也可以进入到 nginx docker 容器中,直接访问 80 端口
# docker ps
CONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
2772a4050157nginx"/docker-entrypoint.…"14 minutes agoUp 14 minutes0.0.0.0:8888->80/tcpnginx1进入 nginx1 的终端
# docker exec -it nginx1 /bin/bash访问 80 端口
# curl localhost:80
小结
因为我们在创建 nginx1 容器的时候,将主机的 8888 端口,映射到了 容器 nginx1 的 80 端口,因此可以访问主机的 8888 端口来访问到 nginx1 容器中的 80 端口
文章图片
此时,可以访问我的阿里云服务器的 8888 端口,实际是可以访问到我的 nginx1 容器中的 nginx 服务器
文章图片
尝试使用和部署 可视化 Docker 页面 portainer 【【Docker 系列】docker 学习 三】portainer 是 Docker 图形化页面管理工具,他提供了一个后台面板供我们操作和管理。
创建和启动 portainer
docker run -d -p 8888:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
可选参数说明:
- --restart
- -v
- --privileged
- -p 8888:9000
访问和设置 portainer 用户
浏览器访问:IP:8888
文章图片
设置密码,点击 Create users 即可看到如下页面
文章图片
解释一下上述画红线的地方:
- 0 stacks
Stacks就是一组一致运行的、相互关联的services
- 1 container
- 1 volume
- 3 images
我们到主机上面查看 docker 的系统信息
docker info
文章图片
进入到我们自己的 docker 服务,可以看到上述解释的每一个项
文章图片
文章图片
咱们点进 images 看看效果:
文章图片
文章图片
我们可以在这个 web 管理页面看到我们 docker 服务中 3 个镜像的详情,也可以对镜像进行删除,新建,导入和导出
感兴趣的话,可以自己多熟悉和尝试一下 portainer 的使用,以后我们做 CI/CD 的时候,会使用 Rancher
大家学习的时候,可以多多交流,多多练习,多多查看帮助文档,或者在命令行里面使用 –help 来查看都有哪些参数,例如:
docker run --help 用法: docker run [参数] 镜像 [命令] [命令的参数列表...]
Run a command in a new container
参数:
-a, --attach list Attach to STDIN, STDOUT or STDERR
-c, --cpu-shares int CPU shares (relative weight)
-d, --detach 后台运行容器
-e, --env list 设置环境变量
-h, --hostname string Container host name
-i, --interactive Keep STDIN open even if not attached
-l, --label list Set meta data on a container
-m, --memory bytes 内存限制
-p, --publish list Publish a container's port(s) to the host
-P, --publish-all Publish all exposed ports to random ports
-t, --tty Allocate a pseudo-TTY
-u, --user string 用户名或者uid
-v, --volume list 挂载卷
-w, --workdir string 设置容器中的工作目录
参考资料:
docker docs
欢迎点赞,关注,收藏 朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力
文章图片
好了,本次就到这里
技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。
我是小魔童哪吒,欢迎点赞关注收藏,下次见~
推荐阅读
- 宽容谁
- 我要做大厨
- Docker应用:容器间通信与Mariadb数据库主从复制
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘