docker学习端口映射---第二章节
一.运行一个web应用
首先,下载一个docker镜像:
[root@k8s-01 ~]# docker pull training/webapp
运行webapp的容器:
[root@k8s-01 ~]# docker run -d -P training/webapp python app.py
cb2ea5793288ada7c8be553befab76d7516e4a65999680aefeb531d000888634
参数说明:
- -d:让容器在后台运行
- -P:将容器内部使用的网络端口映射到我们使用的主机上
二.查看WEB应用容器
docker ps -l
显示最新创建的容器
查看我们正在运行的webapp容器:
[root@k8s-01 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cb2ea5793288 training/webapp "python app.py" 54 seconds ago Up 54 seconds 0.0.0.0:32768->5000/tcp laughing_engelbart
可以发现,多了端口信息。docker开放的5000端口映射到主机端口32768上。可以通过浏览器访问WEB应用:
这里我们还可以通过-p
参数来设置不一样的端口:
[root@k8s-01 ~]# docker run -d -p 5000:5000 training/webapp python app.py
c5acdbc01395c4d4d38438bc8351fd0820d2ac60c6c8e4924c28f600d0f83c78
查看运行的容器:
[root@k8s-01 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5acdbc01395 training/webapp "python app.py" 52 seconds ago Up 51 seconds 0.0.0.0:5000->5000/tcp pensive_mestorf
可以看出容器内部的5000端口映射到我们本地主机的5000端口上。
三.查看网络端口的快捷方式
我们可以通过docker ps命令查看容器的端口映射。docker还提供了另一个快捷方式docker port,使用docker port可以查看指定(容器ID或者名称)容器的某个确定端口映射到宿主机的端口号
[root@k8s-01 ~]# docker port c5acdbc01395 && docker port pensive_mestorf
5000/tcp -> 0.0.0.0:5000
5000/tcp -> 0.0.0.0:5000
四.查看docker容器应用程序日志输出
[root@k8s-01 ~]# docker logs -f c5acdbc01395
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
这里可以像使用tail -f
一样来输出容器内部的标准输出
五.查看WEB应用程序容器的进程
我们可以通过docker top
来查看容器内部运行的进程
[root@k8s-01 ~]# docker top c5acdbc01395
UID PID PPID C STIME TTY TIME CMD
root 2358409 2358392 0 04:10 ? 00:00:00 python app.py
六.检查WEB应用容器的配置和状态信息
可以使用docker inspect
来查看docker的底层信息,它会返回一个Json文件记录着docker容器的配置和状态信息
[root@k8s-01 ~]# docker inspect c5acdbc01395
[
{
"Id": "c5acdbc01395c4d4d38438bc8351fd0820d2ac60c6c8e4924c28f600d0f83c78",
"Created": "2018-12-20T09:10:33.039244936Z",
"Path": "python",
"Args": [
"app.py"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 2358409,
"ExitCode": 0,
"Error": "",
"StartedAt": "2018-12-20T09:10:33.400703462Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
.........
七.删除web应用容器
使用docker rm命令删除容器
删除前,需要停止容器,否则会报错
[root@k8s-01 ~]# docker stop c5acdbc01395
c5acdbc01395
删除容器
[root@k8s-01 ~]# docker rm c5acdbc01395
c5acdbc01395
参考链接:http://www.runoob.com/docker/docker-container-usage.html
docker学习端口映射---第二章节的更多相关文章
- docker iptables 端口映射 nat
docker iptables 端口映射 nat #!/bin/bash pro='tcp' NAT_Host='Host_A' NAT_Port=8080 Dst_Host='Host_B' ...
- docker学习端口连接docker容器---第四章节
一.Docker容器连接 前面的第二章节,我们事先通过网络端口来访问运行在docker容器内的服务,我们也可以通过端口连接到一个docker容器 我们可以指定容器绑定的网络地址,如绑定127.0.0. ...
- Docker基础-端口映射与容器互联
1.端口映射实现访问容器 1.从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内部的网络应用和服务的. 当容器中运行一些网络应用,要让外部访问这些应用时, ...
- 【docker】追加docker容器端口映射的方法
docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改.通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射. 但这样太麻烦了.现在有新方案来解决掉: ...
- ip route,ip rule, iptables和docker的端口映射
iptables 默认5个表, 不可增加其他表 raw 用于配置数据包,raw 中的数据包不会被系统跟踪. filter 是用于存放所有与防火墙相关操作的默认表. nat 用于 网络地址转换(例如:端 ...
- 修改docker容器端口映射的方法
大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改.通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射. 有没有办法不保存镜像而直接修改 ...
- 16. docker 网络 端口映射
一.本地操作 1.如何将 nginx 暴露给外界 创建 nginx 服务器 docker run --name web -d nginx 查看 nginx 的 ip地址 docker network ...
- Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指。
Docker简介 Docker是开源应用容器引擎,轻量级容器技术. 基于Go语言,并遵循Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...
- 修改docker的port端口映射
原以为修改docker的端口映射只是一条命令就可以搞定,结果发现没那么简单,记录一下以防忘记.1. 查看需要修改的容器,记住container iddocker ps -a2. 停止容器docker ...
随机推荐
- Confluence-6.10.0+Jira-7.13+Crowd-3.2.1最全破解文档,附下载包
=========================================2019.4.19更改================================================ ...
- Vue-admin工作整理(一):项目搭建
1.首先要安装vue-cli 3.0以上版本,和git 该版本可以支持页面化快速创建: sudo npm install -g @vue/cli 安装完毕后查看vue版本信息:vue -V 2.安装好 ...
- oracle 存储过程循环打开游标数据处理
2017-07-24 14:12:42 SQL内容: 1.一次性检索 100000 条数据. 2. 1000 条提交一次. 3.超过 100000 万条,重新打开游标,重新检索. pl/sql内容如下 ...
- 【编程语言】extern "C"让C++与C进行混合编程
最近工作不算轻松,现在作为一个项目的负责人统一管理着前端.后端.设计.产品,身上肩负着不小责任,虽然有压力但是对于自己也是一种锻炼.同时自己也在负责整个后端的架构设计,虽然后端经验不是很多,但是自己正 ...
- Java多线程之volatile关键字《一》
关键字volatile的主要作用是使变量在多个线程间可见. 1.关键字volatile与死循环 如果不是在多继承的情况下,使用继承Thread类和实现Runnable接口在取得程序运行的结果上并没有什 ...
- 注入(injector)
在java开发中有时候我们的一个类需要依赖另外一个类,这种就是依赖关系,创建对象的工作一般由spring容器来完成然后注入给调用者,这种就是依赖注入. Java依赖注入设计原则允许我们移除硬编码依赖和 ...
- NGUI实现滑动屏幕的时候,进行环形旋转
在滑动屏幕的时候,上图中的内容饶圆中心旋转,并且箭头的方向保持不变 每个Item上挂载的脚本: using UnityEngine; public class ItemTest : MonoBehav ...
- extract method
函数 简短,命名良好 函数名描述的是做什么 而不是怎么做 行数过高的代码中 将一大段做一个事的代码提取到独立的method 中 高层函数直接引用. 创建新函数 将提炼的代码平移到目标函数中 检查是否引 ...
- python正则表达式 - re
1,匹配符号 任意字符 . : 任意字符,除了\n,flags设置为DOTALL(S)可以让.匹配\n []字符集合,字符组:规范/元字符不同于正则式主体 [0-9] : 数字 [A-Z] : 大写字 ...
- 安装在类虚拟机crossover中的容器怎么进行的备份和恢复
备份教程: 步骤一:运行CrossOver,选中相关容器,然后在[容器]中找到并点击[导出“MathType6.9b_Trial_YY.exe”到存档],或者直接右击容器名称,然后选择[导出“Math ...