zoukankan      html  css  js  c++  java
  • 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              #把容器启动之后就可以查看日志信息

    我要这天再遮不住我眼,要这地再埋不了我心。要这天下众生都明白我意,要那诸佛都烟消云散!

  • 相关阅读:
    [FAQ] Smart Contract: xxx has not been deployed to detected network (network/artifact mismatch)
    [Contract] Solidity address payable 转换与数组地址
    [Contract] Solidity 变量类型的默认值
    [Contract] Solidity 遍历 mapping 的一种方式
    [Contract] Solidity 判断 mapping 值的存在
    [Contract] public、external, private、internal 在 Solidity 中如何选择
    [FAQ] Member "address" not found or not visible after argument-dependent lookup in address payable.
    [Contract] Truffle 使用流程
    移动端微信应用开发总结(function ajax meta)
    windows sever2003安装Wamp 2.5不成功——VC 11不支持Windows Server 2003和win XP?
  • 原文地址:https://www.cnblogs.com/lixaingyang/p/11976827.html
Copyright © 2011-2022 走看看