docker部署web项目_docker到底怎么用
2023-06-13 09:12:48 时间
大家好,又见面了,我是你们的朋友全栈君。
前言
前面我们运行的容器并没有一些什么特别的用处。 接下来让我们尝试使用 docker 构建一个 web 应用程序。 我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。
运行一个web容器
docker pull training/webapp # 载入镜像
docker run -d -P training/webapp python app.py
[root@jkc easymock]# docker run -d -P training/webapp python app.py
e8365788c20ff883c97718444959c52f995ea6c38713a23a2f4ed1421ab65368
[root@jkc easymock]#
参数说明:
- -d:让容器在后台运行。
- -P:将容器内部使用的网络端口随机映射到我们使用的主机上。
查看 WEB 应用容器
使用 docker ps 来查看我们正在运行的容器:
[root@jkc ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e8365788c20f training/webapp "python app.py" 31 minutes ago Up 31 minutes 0.0.0.0:49153->5000/tcp dazzling_mcnulty
这里多了端口信息。
PORTS
0.0.0.0:49153->5000/tcp
Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 49153 上。 这时我们可以通过浏览器访问WEB应用
我们也可以通过 -p 参数来设置不一样的端口:
[root@jkc ~]# docker run -d -p 5000:5000 training/webapp python app.py
docker ps查看正在运行的容器
[root@jkc ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0d3fe01b6c13 training/webapp "python app.py" 36 seconds ago Up 35 seconds 0.0.0.0:5000->5000/tcp lucid_lederberg
容器内部的 5000 端口映射到我们本地主机的 5000 端口上。
网络端口的快捷方式
通过docker ps
命令可以查看到容器的端口映射,docker 还提供了另一个快捷方式 docker port
,使用docker port
可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号。
上面我们创建的 web 应用容器 ID 为 0d3fe01b6c13 名字为 lucid_lederberg。
我可以使用 docker port 0d3fe01b6c13 或 docker port lucid_lederberg 来查看容器端口的映射情况。
[root@jkc ~]# docker port 0d3fe01b6c13
5000/tcp -> 0.0.0.0:5000
[root@jkc ~]# docker port lucid_lederberg
5000/tcp -> 0.0.0.0:5000
[root@jkc ~]#
查看WEB应用程序容器的进程
我们还可以使用 docker top 来查看容器内部运行的进程
[root@jkc ~]# docker top 0d3fe01b6c13
UID PID PPID C STIME TTY TIME CMD
root 23464 23421 0 16:09 ? 00:00:00 python app.py
检查 WEB 应用程序
使用 docker inspect
来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
[root@jkc ~]# docker inspect e8365788c20f
[
{
"Id": "e8365788c20ff883c97718444959c52f995ea6c38713a23a2f4ed1421ab65368",
"Created": "2021-01-22T07:26:49.225684861Z",
"Path": "python",
"Args": [
"app.py"
],
"State": {
"Status": "exited",
"Running": false,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 0,
"ExitCode": 137,
"Error": "",
"StartedAt": "2021-01-22T07:26:49.59638614Z",
"FinishedAt": "2021-01-22T08:09:05.22474156Z"
},
.......
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/165124.html原文链接:https://javaforall.cn
相关文章
- 从零开始 - Docker部署前后端分离项目(二)
- Docker部署_docker部署网站
- spring boot docker部署_docker部署java项目
- Docker 离线安装_docker官方中文文档
- docker 离线安装_Docker安装
- Docker 和 K8s流程
- 微擎部署独立系统操作流程(docker部署开发好的fasadmin项目)
- 当项目需要使用Docker,对Dockerfile、配置加速器以及配置加速器的实际运用
- Docker服务的重启服务命令(systemctl restart docker)
- Docker高级篇:docker网络的四种类型
- 怎么安装Docker并运行Ubuntu系统?
- 使用Docker快速部署一个Net项目
- docker安装filebrowser
- 【好玩儿的Docker项目】任何地方无障碍快速访问!ChatGPT Next Web——一键免费部署你的私人 ChatGPT 网页应用
- docker 修改挂载文件 Permission denied详解程序员
- django 项目部署用到的docker-compose 文件详解程序员
- 渗透测试系统 Kali 推出 Docker 镜像
- Docker 1.11 采纳了开源容器项目(OCP)组件
- 【保姆级】Python项目(Flask网页)部署到Docker的完整过程