zoukankan      html  css  js  c++  java
  • docker学习---第一章节

    一.docker的应用场景有哪些

    • Web 应用的自动化打包和发布
    • 自动化测试和持续集成、发布
    • 在服务型环境中部署和调整数据库或其他的后台应用
    • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

    二.docker的优势

    • 简化程序
      Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入 Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
    • 避免选择恐惧症
      如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署
    • 节省开支
      一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式

    三.在docker容器里面运行应用程序

    使用docker run命令在ubuntu容器里运行输出hello world的命令

    [root@k8s-01 ~]# 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的两个参数 -i -t,让docker运行的容器实现"交互"的能力

    [root@k8s-01 ~]# docker run -i -t ubuntu:15.10 /bin/bash
    root@485cf27bc46c:/#
    

    参数说明:

    • -t:在新容器内指定一个伪终端或终端
    • -i:允许你对容器内的标准输入进行交互
      上面的例子中,我们已经进入一个ubuntu15.10系统的容器,我们可以在上面运行命令:
    root@485cf27bc46c:/# ls
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    root@485cf27bc46c:/# cat /proc/version 
    Linux version 3.10.0-862.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Fri Apr 20 16:44:24 UTC 2018
    root@485cf27bc46c:/# 
    

    退出的话,可以运行exit 或者ctrl+d退出容器

    五.启动容器(后台模式)

    以下命令创建一个以进程方式运行的容器:

    [root@k8s-01 ~]# docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" 
    190a3487c20059eb0f6f538b366727c5dc64cf4687f4628901bfe86ee483631e
    

    运行完毕后,我们可以看到,输出的了一串字符,这个长字符串叫做容器的ID,对每个容器来说都是唯一的。我们可以通过容器ID来查看对应的容器发生了什么。
    首先,我们需要确认容器是否允许:

    [root@k8s-01 ~]# docker ps
    CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS               NAMES
    190a3487c200        ubuntu:15.10           "/bin/sh -c 'while t…"   About a minute ago   Up About a minute                       amazing_liskov
    

    参数说明:

    • CONTAINER ID:容器的ID
    • IMAGE:使用的镜像
    • COMMAND:执行的命令
    • CREATED:创建的时间
    • STATUS:容器的运行状态
    • PORTS:运行的端口号
    • NAMES:自动分配的容器名称

    查看容器的标准输出,使用容器的ID或者自动分配的容器名称来查看:

    [root@k8s-01 ~]# docker logs 190a3487c200 
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    hello world
    

    停止容器:

    [root@k8s-01 ~]# docker stop 190a3487c200 
    190a3487c200
    

    参考链接:http://www.runoob.com/docker/docker-hello-world.html

  • 相关阅读:
    消灭WinRAR广告
    DLL:操作数据库和表
    MySQL的概述和基础(学习整理)
    MySQL个人用户的安装配置详解
    Maven的几种新建项目方式
    解决Maven的jar包冲突问题
    Maven Web项目出现org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException错误
    Maven的概述和基础(学习整理)
    从Maven中央仓库下载jar包
    Maven的New中没有Servlet问题(IDEA)
  • 原文地址:https://www.cnblogs.com/yuhaohao/p/10150111.html
Copyright © 2011-2022 走看看