docker的简单操作和端口映射
一:简介
Docker镜像
在Docker中容器是基于镜像启动的
镜像是启动容器的核心
镜像采用分层设计,最顶层为读写层
使用快照COW技术,确保底层不丢失
通过ifconfig(ip a)来查看docker0是否存在

docker已经启动成功
二:镜像的操作命令

注意:最后一组命令 docker tag 并不是把名称或者是标签改了,而是会新建一个镜像
上面是总结的一些常用命令
(1)以mysql为例,使用docker search命令
命令:docker search mysql

其中 NAME是指mysql的各个版本名字 DESCRIPTION是指版本说明 STARS是使用率 OFFICIAL是否为官方
查找其他软件包也是一样的操作比如:tomcat
命令:docker search tomcat #也是同样的

(2)然后使用pull命令下载一个镜像
命令:docker pull tomcat #下载tomcat镜像


图中看见pull complete 就是下载成功
我们执行docker images命令来看一下
命令:docker images

标题中:REPOSITORY是指镜像仓库 TAG是指版本(latest:最新的) IMAGE ID是指镜像ID号 CREATED是指创建的时间 SIZE是指内存大小
三:容器的操作命令

注意:还有一组命令 itd it
itd:是放在后台运行
it:是直接使用,一旦退出,容器自动关闭
前面说过容器是基于镜像启动的,镜像是启动容器的核心
现在docker里并没有容器可以使用ps命令查看容器列表
命令:docker ps

运行容器的格式
使用格式:docker run --name container-name:tag -d image-name
1.--name:自定义容器名,不指定时,docker 会自动生成一个名称
2.-d:表示后台运行容器
3.image-name:指定运行的镜像名称以及 Tag
现在启动tomcat
命令:docker run --name Tomcat -d tomcat:latest

现在就是启动成功,下面一长串字母数字是容器的ID号,然后用ps命令查看一下容器列表

1.CONTAINER ID:容器 di
2.IMAGE:镜像名称:Tag
3.COMMAND:命令
4.CREATES:容器创建的时刻
5.STATUS:容器当前的状态 (up 表示运行、Exited 表示停止运行)
6.PORTS:镜像程序使用的端口号和协议
注意:此时虽然容器已经在运行中,Tomcat 镜像占用8080端口,但是这个8080端口是 Docker 容器内部的端口,并不是服务器的端口,
所以必须做 端口映射 将服务器的实际端口映射到 Docker 容器中的端口才能访问。
停止容器
使用 docker stop container-name/container-id 命令进行停止容器运行,指定容器名或者容器 id 也可以的
命令:docker stop 83e141bd0985
ps的意思是:查看当前运行的容器
ps -a的意思是:所有容器都要显示出来,不管有没有运行的还是没运行的
ps -q的意思是:只显示运行的容器

启动容器
使用 docker start container-name/container-id 命令启动停止运行的容器,同理可以根据 容器名或者 容器 id 进行启动
命令:docker start 83e141bd0985
删除容器
使用 docker rm container-id 命令 删除容器,删除容器前,必须先停止容器运行,根据 容器 id 进行删除
rm 参数是删除容器,rmi 参数是删除镜像
镜像运行在容器中,docker 中可以运行多个互不干扰的容器,可以将同一个镜像在多个容器中进行运行
命令:docker rm Tomcat

端口映射
使用:docker run --name container-name:tag -d -p 服务器端口:Docker 端口 image-name
1.--name:自定义容器名,不指定时,docker 会自动生成一个名称
2.-d:表示后台运行容器
3.image-name:指定运行的镜像名称以及 Tag
4.-p 表示进行服务器与 Docker 容器的端口映射,默认情况下容器中镜像占用的端口是 Docker 容器中的端口与外界是隔绝的,必须进行端口映射才能访问
现在先利用iptables开放两个端口
命令:iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
命令:iptables -A INPUT -p tcp --dport 8090 -j ACCEPT
命令:iptables -L -n #查看防火墙规则

然后 运行了 两个容器,容器名称分别指定为 "Tomcat1"、"Tomcat"、两个容器中都是同一个 tomcat:latest镜像
两个容器都指定了端口映射,分别是8080、8090 ,都会转发到 Docker 容器内部
命令:docker run --name Ttomcat1 -d -p 8080:8080 tomcat:lates

命令:docker run --name Ttomcat -d -p 8090:8080 tomcat:latest


启动成功之后,ip addr show 查一下服务器 ip 地址(192.168.175.102),然后就能从物理机上访问了
命令:ip addr show

物理机访问192.168.175.102:8080

物理机访问192.168.175.102:8090

容器日志
使用 docker logs container-name/container-id 命令 可以查看容器日志信息,指定容器名或者容器id就可以了
命令:docker logs Ttomcat #把容器启动之后就可以查看日志信息

我要这天再遮不住我眼,要这地再埋不了我心。要这天下众生都明白我意,要那诸佛都烟消云散!
docker的简单操作和端口映射的更多相关文章
- Docker入门 - 002 Docker 的简单操作
系统要求:CentOS 7.2 64 位操作系统. Docker 的简单操作 下载镜像 下载一个官方的 CentOS 镜像到本地 docker pull centos 下载好的镜像就会出现在镜像列表里 ...
- docker容器启动后添加端口映射
DOCKER 给运行中的容器添加映射端口 方法1 1.获得容器IP 将container_name 换成实际环境中的容器名 docker inspect `container_name` | grep ...
- 如何修改Docker已运行实例的端口映射
如何修改Docker已运行实例的端口映射 Docker的端口映射,往往出现在两个阶段需要处理: 1.是在docker启动前就已经确定好,哪个docker实例映射哪个端口(往往这个情况比较,需要提前做规 ...
- Centos7 docker容器启动后添加端口映射
docker容器启动后添加端口映射的两种方法: 一.通过修改防火墙策略添加端口映射 docker容器已创建好,但是想在容器内配置tomcat监控,需要新的端口去访问,但是映射时没有映射多余端口,此时, ...
- Docker修改已创建容器端口映射
修改已创建容器端口映射. 通过编辑 hostconfig.json 文件来修改 Docker 容器的端口映射 该文件地址:/var/lib/docker/containers/[hash_of_the ...
- Docker 如何动态修改容器端口映射
Docker端口映射往往是Docker Run命令时通过-p将容器内部端口映射到宿主机的指定端口上,一般来说容器的端口所对应的端口是提前确定需要映射的.但是有些情况下不得不需要临时映射端口,例如Doc ...
- 对已有的docker容器增加新的端口映射
一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 docker run -it -d --name [contain ...
- Docker之简单操作
安装完Docker后,我们就可以与Docker进行交互来创建和管理容器等操作. 容器生命周期管理: 创建一个新的容器并运行一个命令 docker run [OPTIONS] IMAGE [COMMAN ...
- docker 的简单操作
一直说更博,但是一直在delay.... 最近一直用到docker,所以就总结一下吧! docker的介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. ...
随机推荐
- [数据结构 - 第8章] 查找之哈希表(C语言实现)
首先是需要定义一个哈希表的结构以及一些相关的常数.其中 HashTable 就是哈希表结构.结构当中的 elem 为一个动态数组. #define HASHSIZE 12 // 定义哈希表长为数组的长 ...
- Unity Shader 屏幕后效果——高斯模糊
高斯模糊是图像模糊处理中非常经典和常见的一种算法,也是Bloom屏幕效果的基础. 实现高斯模糊同样用到了卷积的概念,关于卷积的概念和原理详见我的另一篇博客: https://www.cnblogs.c ...
- mybatis使用associaton进行分步查询
Employee类 public class Employee { private Integer id; private String lastName; private String email; ...
- 容斥原理--计算并集的元素个数 URAL 1091
在计数时,必须注意没有重复,没有遗漏.为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计 ...
- Django-orm高级
ORM字段 orm常见字段 https://www.cnblogs.com/liuqingzheng/articles/9627915.html choice字段注释与数据渲染 性别 sex_choi ...
- Linux系统安装snmp服务
Linux安装snmp详解 Snmp一种网络之间的传输协议,通过snmp可以采集很多指标比如cpu.内存及磁盘的信息,现在越来越多的网络设备基本上都支持snmp,本文介绍了snmp的安装过程. 二.安 ...
- Appium+python自动化(四)- 如何查看程序所占端口号和IP(超详解)(番外篇)
简介 这篇博文和分类看似没有多大关系,但是也是从上一篇衍生出来的产物,因为涉及到FQ工具Lantern,就算是给关注和支持的小伙伴们拓展一下眼界和知识面.而且好多人都阅读了上一篇没发现那个参考博客点不 ...
- Java反射获取泛型类型
本文链接:https://blog.csdn.net/hongxingxiaonan/article/details/49202613 在Java反射技术的应用中,取得一个类的成员.方法和构造函数相对 ...
- c# asp.net core取当月第一天和最后一天及删除最后一个字符的多种方法
当月第一天0时0分0秒 DateTime.Now.AddDays( - DateTime.Now.Day).Date 当月最后一天23时59分59秒 DateTime.Now.AddDays( - D ...
- U9 DLL读取配制文件
在网上大多数的例子都是如何访问程序运行的目录下的配制文件,但是U9BP里要将DLL放到生产环境,我并不知道生产环境运行的目录,所以只能DLL读取当前目录XML. 过下面几个方法都可以拿到程序所在的文件 ...