一:简介

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的简单操作和端口映射的更多相关文章

  1. Docker入门 - 002 Docker 的简单操作

    系统要求:CentOS 7.2 64 位操作系统. Docker 的简单操作 下载镜像 下载一个官方的 CentOS 镜像到本地 docker pull centos 下载好的镜像就会出现在镜像列表里 ...

  2. docker容器启动后添加端口映射

    DOCKER 给运行中的容器添加映射端口 方法1 1.获得容器IP 将container_name 换成实际环境中的容器名 docker inspect `container_name` | grep ...

  3. 如何修改Docker已运行实例的端口映射

    如何修改Docker已运行实例的端口映射 Docker的端口映射,往往出现在两个阶段需要处理: 1.是在docker启动前就已经确定好,哪个docker实例映射哪个端口(往往这个情况比较,需要提前做规 ...

  4. Centos7 docker容器启动后添加端口映射

    docker容器启动后添加端口映射的两种方法: 一.通过修改防火墙策略添加端口映射 docker容器已创建好,但是想在容器内配置tomcat监控,需要新的端口去访问,但是映射时没有映射多余端口,此时, ...

  5. Docker修改已创建容器端口映射

    修改已创建容器端口映射. 通过编辑 hostconfig.json 文件来修改 Docker 容器的端口映射 该文件地址:/var/lib/docker/containers/[hash_of_the ...

  6. Docker 如何动态修改容器端口映射

    Docker端口映射往往是Docker Run命令时通过-p将容器内部端口映射到宿主机的指定端口上,一般来说容器的端口所对应的端口是提前确定需要映射的.但是有些情况下不得不需要临时映射端口,例如Doc ...

  7. 对已有的docker容器增加新的端口映射

    一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 docker run -it -d --name [contain ...

  8. Docker之简单操作

    安装完Docker后,我们就可以与Docker进行交互来创建和管理容器等操作. 容器生命周期管理: 创建一个新的容器并运行一个命令 docker run [OPTIONS] IMAGE [COMMAN ...

  9. docker 的简单操作

    一直说更博,但是一直在delay.... 最近一直用到docker,所以就总结一下吧! docker的介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. ...

随机推荐

  1. python2升级python3

    需求: centos环境,python2.7需要升级为python3.x 1.请先手动(再次)安装 openssl .否则你升级之后,你的pip不能下载,会各种报错的. 比如这种错误: ImportE ...

  2. why’s kafka so fast

    As we all know that Kafka is very fast, much faster than most of its competitors. So what’s the reas ...

  3. [转] Nginx配置性能优化

    大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了.而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能 ...

  4. Blend 阴影 倒影 模糊效果

    原文:Blend 阴影 倒影 模糊效果 1)阴影 和模糊效果很简单 在Blend的面板效果中就有体现 直接拖拽到控件即可 2)文本加圆角 需要一个布局控件Border 设置属性CornerRadius ...

  5. 0 != null 为什么报指针?

    大家好,这是我第一次写博客,来分享我平时工作中遇到的问题及平时学习的技术,如果有写的不好或者不对的地方还望大家能够指出和包涵. 那么接下来就开始说下我工作中遇到的这个问题,我写了一个test,如下: ...

  6. 为啥git会这么差!!!!

    删除分支  git push origin --delete Chapater6   可以删除远程分支Chapater6 git branch -d Chapater8 可以删除本地分支(在主分支中) ...

  7. APICloud项目纪要

    一.页面之间的传递参数通过pageParam传递参数: api.openWin({ name: 'ware', url: './ware.html', pageParam: { wareId: 'w1 ...

  8. kubernetes学习Service之headless和statefulSet结合

    一.首先说headless Service和普通Service的区别 headless不分配clusterIP headless service可以通过解析service的DNS,返回所有Pod的地址 ...

  9. java mybatis Column 'AAA' in where clause is ambiguous

    今天在java mybatis项目中遇到一个问题,“java mybatis Column 'AAA' in where clause is ambiguous”, 这是由于在多表连接查询的时候,遇上 ...

  10. 【Spring AOP】Spring AOP之如何通过注解的方式实现各种通知类型的AOP操作进阶篇(3)

    一.切入点表达式的各种类型 切入点表达式的作用:限制连接点的匹配(满足时对应的aspect方法会被执行) 1)execution:用于匹配方法执行连接点.Spring AOP用户可能最经常使用exec ...