接下来我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。
目前创新互联已为1000+的企业提供了网站建设、域名、网页空间、网站托管、服务器托管、企业网站设计、秀山土家族苗族网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。使用如下命令载入镜像:
# 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容器使用