云计算核心技术Docker教程: 构建web应用程序

  • 来源:网络
  • 更新日期:2020-07-02

摘要:接下来我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。 使用如下命令载入镜像: # docker pull training/webapp # 载入镜像 # docker run -d -P trainin

接下来我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。

使用如下命令载入镜像:

# docker pull training/webapp # 载入镜像

# docker run -d -P training/webapp python app.py

参数说明:

-d:让容器在后台运行。

-P:将容器内部使用的网络端口随机映射到我们使用的主机上。

使用 docker ps 来查看我们正在运行的容器:

命令如下:

# docker ps

显示的端口映射信息:

PORTS

0.0.0.0:32769->5000/tcp

Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32769 上。

这时我们可以通过浏览器IP:32769访问WEB应用

我们也可以通过 -p 参数来设置不一样的端口:

docker run -d -p 5000:5000 training/webapp python app.py

修改为容器内部的 5000 端口映射到我们本地主机的 5000 端口上。

通过 docker ps 命令可以查看到容器的端口映射,docker 还提供了另一个快捷方式 docker port,使用 docker port 可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号。

上面我们创建的 web 应用容器 ID 为 bf08b7f2cd89 名字为 wizardly_chandrasekhar。

我可以使用 docker port bf08b7f2cd89 或 docker port wizardly_chandrasekhar 来查看容器端口的映射情况。

命令如下:

# docker port bf08b7f2cd89

# docker port wizardly_chandrasekhar

docker logs [ID或者名字] 可以查看容器内部的标准输出。

命令如下:

# docker logs -f bf08b7f2cd89

参数说明:

-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。

我们还可以使用 docker top 来查看容器内部运行的进程

命令如下:

# docker top [ID或者名字]

使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。

命令如下:

# docker inspect [ID或者名字]

停止 WEB 应用容器

# docker stop [ID或者名字]

重启WEB应用容器

# docker start [ID或者名字]

可以使用docker ps -l 查询最后一次创建的容器

移除WEB应用容器

使用 docker rm 命令来删除不需要的容器

删除容器时,容器必须是停止状态,否则会报错。

可能会出现的问题:

创建容器的时候报错WARNING: IPv4 forwarding is disabled. Networking will not work.

解决方法:

# vim /usr/lib/sysctl.d/00-system.conf

添加如下代码:net.ipv4.ip_forward=1

重启network服务

# systemctl restart network

完成以后,删除错误的容器,再次创建新容器,就不再报错了。

相关阅读:

云计算核心技术Docker教程:在Centos中安装Docker

云计算的主流容器平台Docker架构分析

云计算核心技术Docker教程:Docker容器使用

新网箭头云服务器