docker

制作镜像
1. 写Dockerfile文件
2. 命令:docker build -t 目标镜像名 .
    //  -t: 指定要创建的目标镜像名
    //  . : Dockerfile 文件所在目录,可以指定Dockerfile的绝对路径。 
3. 启动镜像:sudo docker run --rm -p 8081:8081 localhub:5000/cwi_activity:v0.1
4. docker push 镜像名
 

1. Docker是一个开源的应用容器引擎
2. Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,
   然后发布到任何流行的Linux机器上,也可以实现虚拟化。
3. 容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),
   更重要的是容器性能开销极低。
4. 应用场景
   Web应用的自动化打包和发布。
   自动化测试和持续集成、发布。
   在服务型环境中部署和调整数据库或其他的后台应用。
   从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
5. 在容器内运行一个应用程序()
   docker run ubuntu:15.10 /bin/echo "Hello world"
   输出 Hello world
   各参数解析:
   docker: Docker的二进制执行文件
   run:与前面的docker组合来运行一个容器。
   ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,
   如果不存在,Docker就会从镜像仓库Docker Hub下载公共镜像。
   /bin/echo "Hello world":在启动的容器里执行的命令。
   以上命令完整的意思可以解释为:
   Docker以ubuntu15.10镜像创建一个新容器,
   然后在容器里执行bin/echo "Hello world",然后输出结果。
6. 运行交互式的容器()
   docker run -i -t ubuntu:15.10 /bin/bash
   -t: 在新容器内指定一个伪终端或终端。
   -i: 允许你对容器内的标准输入(STDIN)进行交互。
       此时已经入一个ubuntu15.10系统的容器
       在容器中运行命令
       cat/proc/version 查看当前系统的版本信息
       ls 查看当前目录下的文件列表。
7. 启动容器(后台模式)
   使用以下命令创建一个以进程方式运行的容器
   输入指令:docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
   输出内容:2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
   (1)这个长字符串叫做容器ID,对每个容器来说都是唯一的。
   (2)docker ps 确定容器有在运行
      CONTAINER ID:容器ID 2b1b7a428627
      NAMES:自动分配的容器名称 amazing_cori
      docker logs 2b1b7a428627 查看容器内的标准输出
      docker logs amazing_cori 查看容器内的标准输出
   各参数解释:
    -d: 让容器在后台运行
    -P: 将容器内部使用的网络端口映射到我们使用的主机上。
    
7. 退出容器()
   exit或CTRL+D
8. 停止容器()
   docker stop 容器ID/容器名
9. Docker镜像使用()
   当运行容器时,使用的镜像如果在本地中不存在,docker就会自动从docker镜像仓库中下载,
   默认是从Docker Hub公共镜像源下载。
   (1)列出镜像列表()
      runoob@runoob:~$ docker images           
      REPOSITORY          TAG           IMAGE ID            CREATED             SIZE
      ubuntu              14.04         90d5884b1ee0        5 days ago          188 MB
      php                 5.6           f40e9e0f10c8        9 days ago          444.8 MB
      nginx               latest        6f8d099c3adc        12 days ago         182.7 MB
      mysql               5.6           f2e8d6c772c0        3 weeks ago         324.6 MB
      httpd               latest        02ef73cf1bc0        3 weeks ago         194.4 MB
      ubuntu              15.10         4e3b13c8a266        4 weeks ago         136.3 MB
      hello-world         latest        690ed74de00f        6 months ago        960 B
      training/webapp     latest        6fae60ef3446        11 months ago       348.8 MB
      
      各个选项说明:
      REPOSITORY:表示镜像的仓库源
      TAG:镜像的标签
      IMAGE ID:镜像ID
      CREATED:镜像创建时间
      SIZE:镜像大小
     
      同一仓库源可以有多个TAG,代表这个仓库源的不同个版本
      定义不同的镜像:REPOSITORY:TAG
   (2)获取一个新的镜像()或拖取镜像()
      docker pull 镜像的仓库源:镜像的标签
   (3)查找镜像()
      doker search 镜像的仓库源的名称
   (5)创建镜像()
      当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,
      我们可以通过以下两种方式对镜像进行更改。
      1. 从已经创建的容器中更新镜像,并且提交这个镜像。
      2. 使用Dockerfile指令来创建一个新的镜像
    (6)更新镜像()
       创建容器:docker run -t -i ubuntu:15.10 /bin/bash 进入容器内
       在运行的容器内使用apt-get update 命令进行更新
       完成操作后,输入exit命令来退出这个容器
       通过命令docker commit来提交容器副本
       docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
       各个参数说明:
       -m:提交的描述信息
       -a:指定镜像作者
       e218edb10161:容器ID
       runoob/ubuntu:v2 : 指定要创建的目标镜像名
    (7)构建镜像()
       创建一个Dockerfile文件 cat Dockerfile 
       runoob@runoob:~$ cat Dockerfile 
       FROM    centos:6.7
       MAINTAINER      Fisher "fisher@sudops.com"

       RUN     /bin/echo 'root:123456' |chpasswd
       RUN     useradd runoob
       RUN     /bin/echo 'runoob:123456' |chpasswd
       RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
       EXPOSE  22
       EXPOSE  80
       CMD     /usr/sbin/sshd -D
       每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写
       第一条FROM,指定使用哪个镜像源
       RUN指令告诉docker在镜像内执行命令,安装了什么。。。
       然后使用Dockerfile文件,通过docker build命令来构建一个镜像。
       runoob@runoob:~$ docker build -t runoob/centos:6.7 .
       Sending build context to Docker daemon 17.92 kB
       Step 1 : FROM centos:6.7
        ---> d95b5ca17cc3
       Step 2 : MAINTAINER Fisher "fisher@sudops.com"
        ---> Using cache
        ---> 0c92299c6f03
       Step 3 : RUN /bin/echo 'root:123456' |chpasswd
        ---> Using cache
        ---> 0397ce2fbd0a
       Step 4 : RUN useradd runoob
       ......
       参数说明:
        -t: 指定要创建的目标镜像名
        . : Dockerfile 文件所在目录,可以指定Dockerfile的绝对路径。
    (8)设置镜像标签
    runoob@runoob:~$ docker tag 860c279d2fec runoob/centos:dev
    docker tag 镜像ID 用户名/镜像源名:新的标签名
    runoob@runoob:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
runoob/centos       6.7                 860c279d2fec        5 hours ago         190.6 MB
runoob/centos       dev                 860c279d2fec        5 hours ago         190.6 MB
runoob/ubuntu       v2                  70bf1840fd7c        22 hours ago        158.5 MB
ubuntu              14.04               90d5884b1ee0        6 days ago          188 MB

10. Docker容器使用
   (1)运行一个web应用
   docker pull training/webapp  //载入镜像
   docker run -d -P 5000:5000 training/webapp python app.py 
   //-d:让容器在后台运行
   //-P:将容器内部使用的网络端口映射到我们使用的主机上。
   //  容器内部的5000端口映射到我们本地主机的5000端口上。
   (2)查看正在运行的容器
     docker ps 
     docker ps -l 查询最后一次创建的容器
   (3)docker port 容器ID或容器名
     查看指定(ID或者名)容器的某个确定端口映射到宿主机的端口号
     输入: docker port 2344fsdfd
     输出: 5000/tcp -> 0.0.0.0:5000
   (4)查看web应用程序日志
      docker logs -f 容器ID或容器名
      -f: 让docker logs像使用tail -f 一样来输出容器内部的标准输出。
   (5)查看web应用程序容器的进程
      docker top 容器ID或容器名
   (6)检查web应用程序
      查看Docker底层信息,返回一个json文件记录着Docker容器的配置和状态信息
      docker inspect 容器ID或容器名
   (7)停止web应用容器
      docker stop 容器ID或容器名
   (8)重启web应用容器
      docker start 容器ID或容器名
      docker restart 容器ID或容器名 //重启正在运行的容器
   (9)移除web应用容器
      docker rm 容器ID或容器名
      删除容器时,容器必须是停止状态。

常用指令

1. docker run  --启动镜像

2. docker pull --拉取镜像

3. docker push --推镜像

4. docker ps --显示运行的容器

5. docker save --保存镜像

6. docker load --加载镜像

7. docker rm --删除镜像

8. docker cp --拷贝数据

9. docker version --显示docker版本信息

10. docker info --显示容器信息

11. docker login --登录镜像仓库

12. docker images --显示镜像信息

13. docker kill --杀死容器相关进程

14. docker export/import --打包、解包

15. docker pause --暂停某一容器的所有进程

16. docker tag --打标签

17. docker logs --查看容器日志

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值