docker入门

怎样拉取docker镜像文件?

1,docker pull [OPTIONS] NAME[:TAG|@DIGEST]
    作用:从远程仓库拉取镜像文件到本地
    [OPTIONS]:拉取镜像的参数,具体参数可通过  【docker pull --help】  命令查看
    NAME:拉取镜像的名称
    [:TAG|@DIGEST]:拉取镜像的版本号,不写默认获取最新版本
    例子:      

 docker pull hub.c.163.com/library/mysql:latest

2,docker images [OPTIONS] [REPOSITORY]
    作用:查看本机有哪些镜像文件
    [REPOSITORY]:用来查看指定的镜像名称 ,一般本地镜像文件较多的情况下使用该参数
   


怎样运行docker镜像?

1,docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    作用:运行本地镜像,生成一个新的容器
    [COMMAND]:指镜像运行起来后要执行的命令
    [ARG...]:要执行的命令所依赖的参数
    例子:       

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql
     其中:
        -d:表示后台运行并打印出运行的ID值
        -p: 表示容器和主机的端口映射  
        -e: 表示设置环境变量  这个例子就是设置了mysql数据的密码和数据库的名称
2,docker ps
    作用:查看当前正在运行的容器
   
3,docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
    作用:进入正在运行的某个容器
    CONTAINER:正在运行的容器ID (可输入容器ID的前面几位进行模糊匹配的唯一值)
    例:进入mysql容器
docker exec -it c6 bash
    其中
     -i:表示保证输入有效
     -t:新开一个伪终端
    c6:模糊匹配出mysql的容器ID c689563ecb99
3,exit
    作用:退出当前容器
4,docker restart [OPTIONS] CONTAINER [CONTAINER...]
    作用:重启某个容器
    例子:      
 docker restart c6
5, docker stop [OPTIONS] CONTAINER [CONTAINER...]
   作用:关闭某个容器
    例子:      
 docker restart c6
怎样制作docker镜像?

制作镜像简单步骤:
1,创建 Dockerfile 文件,文件的内容是描述怎样制作自己的docker镜像
2,运行 docker builde 命令 执行制作

 例子:
  将应用程序 jpress 的war包 放入一个已经存在的tomcat镜像中,并生成一个新的镜像文件jpress 

vi Dockerfile    //新建一个Dockerfile 文件

Dockerfile 内容:
   from hub,c.163.com/library/tomcat   //以tomcat为基础的镜像文件
   MAINTAINER  hsp  xxx@qq.com    //记录创建者信息 可忽略
   COPY jpress.war /usr/local/tomcat/webapps/    //将war包拷贝到对应的tomcat目录  
 
docker build -t jpress:latest  //生成新的镜像文件 -t:指定新镜像文件的名称



docker images //可以查看最新生成的镜像文件



怎样从外部访问docker容器的应用程序?

docker具有隔离性,每个docker容器之间是相互独立的,正在运行的docker容器就像一台虚拟机,要想访问容器内部的应用程序,就必须先了解容器的网络模式。

首先,docker容器具有四种网络模式,分别是:

none:关闭容器内的网络连接,可以使用 参数 --net=none 指定
bridge:通过veth接口来连接容器,默认配置。
host:允许容器使用主机host的网络堆栈信息,可以使用 参数 --net=host .。指定注意:这种方式将允许容器访问host中类似D-BUS之类的系统服务,所以认为是不安全的。
container:使用另外一个容器的网络堆栈信息,使用--net=container:Name或者容器ID 指定。

None模式
在这种模式下,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。

Bridge模式

Docker默认会将容器设置为bridge模式。此时在主机上面将会存在一个docker0的网络接口,同时会针对容器创建一对veth接口。其中一个veth接口是在主机充当网卡桥接作用,另外一个veth接口存在于容器的命名空间中,并且指向容器的loopback。Docker会自动给这个容器分配一个IP,并且将容器内的数据通过桥接转发到外部。

Host模式

当网络模式设置为host时,这个容器将完全共享host的网络堆栈。host所有的网络接口将完全对容器开放。容器的主机名也会存在于主机的hostname中。这时,容器所有对外暴露的端口和对其它容器的连接,将完全失效。

Container模式

当网络模式设置为Container时,这个容器将完全复用另外一个容器的网络堆栈。同时使用时这个容器的名称必须要符合下面的格式:--net container:<name|id>.

以运行jpress镜像为例

docker run -d -p 8081:8080 jpress  

该docker 命令默认使用bridge模式,假设服务器主机的公网IP为192.168.1.1

则可通过 http://192.168.1.1:8081/jpress 直接访问容器内部的jpress应用程序




Docker思维导图下载地址:

      http://pan.baidu.com/s/1boLZQFH



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值