您的位置:首页 > 运维架构 > Docker

docker入门

2017-06-17 16:45 465 查看

怎样拉取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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息