一.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

docker学习---第一章节的更多相关文章

  1. Docker学习第一天(Docker入门&&Docker镜像管理)

    简介 今天小区的超市买零食老板给我说再过几天可能就卖完了我有点诧异,老板又说厂家不生产了emmm 今天总算开始docker了! 1.Docker? 1.什么是Docker Docker 是一个开源的应 ...

  2. 基于编程人员Python学习第一章节

    基于廖雪峰的python零基础学习后,自我总结.适用于有一定基础的编程人员,对我而言,则是基于.net已有方面,通过学习,记录自我觉得有用的地方,便于后续回顾. 主要以快速定位内容,通过直观代码输入输 ...

  3. Docker学习第一天

    1.Docker包含三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) Docker镜像就是一个只读的模板,镜像可以用来创建Docker容器.Docker提供了 ...

  4. 《Lucene in Action》(第二版) 第一章节的学习总结 ---- 用最少的代码创建索引和搜索

    第一章节是介绍性质,但是通过这一章节的学习,我理解到如下概念: 1.Lucene由两部分组成:索引和搜索.索引是通过对原始数据的解析,形成索引的过程:而搜索则是针对用户输入的查找要求,从索引中找到匹配 ...

  5. Docker学习总结(6)——通过 Docker 化一个博客网站来开启我们的 Docker 之旅

    通过 Docker 化一个博客网站来开启我们的 Docker 之旅 这篇文章包含 Docker 的基本概念,以及如何通过创建一个定制的 Dockerfile 来 Docker 化Dockerize一个 ...

  6. Docker学习笔记之-部署.Net Core 3.1项目到Docker容器,并使用Nginx反向代理(CentOS7)(一)

    上一节演示如何安装Docker,链接:Docker学习笔记之-在CentOS中安装Docker 本节演示 将.net core 3.1 部署到docker容器当中,并使用 Nginx反向代理,部署平台 ...

  7. Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7)

    前一节演示在docker中安装mssql,地址:Docker学习笔记之--安装mssql(Sql Server)并使用Navicat连接测试(环境:centos7) 本节演示 .Net Core项目容 ...

  8. Docker学习总结之Run命令介绍

    Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ...

  9. docker 学习手冊-中文版下载

    这个PDF算是学习docker的一个小总结,全部文章摘自我在csdn的博客专栏: http://blog.csdn.net/column/details/docker.html 第一章到第八章摘自do ...

随机推荐

  1. 读书笔记--《编写高质量代码:改善Python程序的91个建议》

      第一章 引论 建议写Pythonic式的代码,我理解为充分利用pythonAPI,用最简洁方式写出代码 1.两个变量交换: a, b = b, a 2.翻转list: a = [1, 2, 3, ...

  2. CentOS7攻克日记(三) —— 安装Python3.6

    我是在EVERNOTE上面写的,本来格式是有代码段的,结果复制上来就没有了,所以会有一点乱,我就不调整了   我主要安装的是python环境,这一篇主要解决一下python的问题.在这里给个建议,安装 ...

  3. UVA10163 Storage Keepers (动态规划)

    $dp[i][j]$表示前$i$个仓库由前$j$个人来守卫能取得的最大安全值: $cost[i][j]$表示前$i$个仓库由前$j$个人来守护在能取得的最大安全值的情况下的最小花费. AC代码 //# ...

  4. Unity3D|-XLua热更新用法的大致流程

    xlua是由腾讯维护的一个开源项目,我们可以在github上下载这个开源项目并查看一些相关文档 官网:https://github.com/Tencent/xLua 配置文档:https://gith ...

  5. EOJ Monthly 2019.2

    题解 A 回收卫星 #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/s ...

  6. 多重线性回归 (multiple linear regression) | 变量选择 | 最佳模型 | 基本假设的诊断方法

    P133,这是第二次作业,考察多重线性回归.这个youtube频道真是精品,用R做统计.这里是R代码的总结. 连续变量和类别型变量总要分开讨论: 多重线性回归可以写成矩阵形式的一元一次回归:相当于把多 ...

  7. caffe分类

    1.制作数据  标签   label.bat dir/s/on/b >.txt 2.制作lmdb     convert_lmdb.bat SET GLOG_logtostderr= E:\ca ...

  8. WebAPI调用笔记

    前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于Http协议的Get.Po ...

  9. 【数论】 快速幂&&矩阵快速幂

    首先复习快速幂 #include<bits/stdc++.h> using namespace std; long long power(long long a,long long b,l ...

  10. dubbo基础学习总结

    Dubbo基本原理机制 分布式服务框架: –高性能和透明化的RPC远程服务调用方案 –SOA服务治理方案 -Apache MINA 框架基于Reactor模型通信框架,基于tcp长连接 Dubbo缺省 ...