学习docker on windows (1): 为什么要使用docker

为什么要用Docker?

如果我们想使用某种pc软件, 那么在互联网上查找并安装软件的流程大致如下图:

那么这就有几个问题要弄清楚:

  • 从哪里获得软件

    • App Store
    • Linux的包管理
    • 从某些网站直接下载
  • 软件是否提供了相关信息和数据

    • 例如流行度, 下载次数, 存在的bug, 上次的更新时间等等.
  • 信任问题
    • 下载软件的网站是否为官方网站
    • http 还是 https
    • 代码
  • 是否还可以下载
  • 是否收费

第一个令人困扰的问题: 安装软件

  • 软件是否支持我的操作系统/版本
  • 是否支持我的设备的CPU架构
  • 软件的格式
    • 有些是从源码进行安装
    • 有些是单独的exe文件
    • 有的是exe+dlls
    • 有时候是exe+dlls+依赖某些运行时
  • 软件的安装方式
    • 有自带的安装器
    • 使用包管理工具安装
    • 手动安装
  • 软件的更新和卸载
    • 自动更新?
  • 软件的配置(对于新手来说可能这就是个噩梦)

从上面这些问题可以看出, 现在这个年代, 安装个软件真是个挺麻烦的事, 尤其是用于开发相关的软件, 有时候让人头疼.

第二个问题: 软件的运行

这方面可能会存在以下问题:

  • 是否有详细的帮助文档
  • 软件在哪运行
    • 是否需要手动修改系统某些设置
    • 是否需要设置环境变量PATH
  • 如何开始, 如何结束
  • 是否需要注册服务
    • 如何注册服务
    • 是否需要手动编写服务配置
  • 是否需要许可
  • 如何安装和运行软件的依赖项
    • 如果没找到依赖项会怎么处理
    • 循环的依赖项
  • 安全性, 沙箱运行?
  • 破坏性更新
    • 系统更新是否对软件有破坏性影响
    • 共享的库有更新

什么是容器

Docker不是虚拟机的替代者, docker不是虚拟化技术, 它更多是关于软件的运行.

什么是容器,它和虚拟机有什么区别?

首先介绍一下虚拟机:

虚拟机管理其把服务器的硬件资源(CPU,内存,硬盘,网络等)切割成多个虚拟的版本, 然后基于这些虚拟的硬件建立操作系统.

虚拟机建立的系统就像是正常的系统服务一样.

与虚拟机管理器不同, Docker或者其他的容器引擎切割的是操作系统的资源, 例如进程的命名空间, 网络栈, 存储栈等等:

每个容器都有PID为1的进程, 每个容器也都有自己的根文件系统(windows的C盘, linux的/).

所以docker可以称作是对针对操作系统的虚拟化操作, 它非常的轻量级.

可以举一些例子, 安装 sql server, mysql, mongodb, postgresql 等, 下载, 安装, 配置. 有的还是挺麻烦的.

下面看看使用docker会怎么样, 首先需要安装docker.

安装Docker

Docker for windows 下载地址: https://store.docker.com/editions/community/docker-ce-desktop-windows

安装好docker后, 系统右下角托盘处会有docker的图标, 等到图标不再闪烁了, 说明docker已经启动成功了.

右键点击图标有Settings.

可以通过命令行看一下docker的状态:

docker version

可以看到client是windows, server是linux(系统需要启用Hyper-V)虚拟机.

从Hyper-V管理器可以看到这个linux虚拟机:

使用Docker的例子: Postgresql

首先去 https://hub.docker.com/ 这里查找需要使用的软件, 例如postgresql : https://hub.docker.com/_/postgres/

从页面可以看到 postgres是docker官方认可的库. 页面的下方有使用说明等.

首先别忘了运行docker.

然后从docker hub下载postgres这个软件(应该叫image), 命令行执行:

docker pull postgres

下载的过程有时候比较慢, 尤其是在国内 (如果速度实在太慢, 那么可以使用阿里云的容器镜像: https://dev.aliyun.com/search.html?spm=5176.1972343.0.1.340c5aaafU9rRJ):

等了一段时间之后, 下载完毕:

现在image已经下载了, 那么接下来就是需要通过某种方式运行这个image, 这就涉及到了container容器.

容器就像是一个已经安装好的软件, 它负责把这个image配置并安装好, 然后就可以运行这个安装好的postgresql了.

普通的软件安装好之后运行的是exe, 而这个运行的是容器, 容器里面是postgresql.

整个针对普通的软件安装的流程如下:

docker run 命令

docker run 这个命令会一次性执行上面整个流程.

注: 所有的docker命令都是以docker开头, 也就是调用docker程序. docker run xxx表示让docker运行某个image. 然后客户端就会通过API调用告诉服务端(Daemon守护进程, 它实现了Docker Remote Api或者叫Docker Engine Api). Daemon首先看看本地有没有这个image, 然后没找到这个image, 然后daemon就会从docker hub 拉取下来这个image到本地, 然后使用这个image来创建新的container.

下面执行docker run postgres:

可以看到postgresql已经运行起来了. 其内容和单独安装的postgresql运行起来是一样的.

使用 docker ps 命令查看正在运行的容器:

然后按照官方文档的命令使用psql去连接postgresql:

可以看到, 进入到psql环境了. 这个postgres和传统方式安装的postgresql功能是一样的.

写个postgresql命令试试:

docker exec 运行容器内的命令:

我电脑现在运行的是docker的linux容器, 所以可以使用这个命令运行一下linux的bash:

首先使用docker ps命令查看正在运行的容器, 然后使用docker exec -it 08 bash执行ID为08开头的容器内的bash命令. -it表示交互模式.

然后使用ps -e查看该容器内的linux的进程, 里面有bash, 刚才启动运行的psql, ps.

退出

在交互模式下使用exit命令进行退出:

停止运行容器则需要使用docker stop 容器ID这个命令:

以上这些就是使用docker的原因.......

原文地址:https://www.cnblogs.com/cgzl/p/8458926.html

时间: 2024-11-08 05:23:40

学习docker on windows (1): 为什么要使用docker的相关文章

使用Docker for Windows初体验

这是第二次使用Docker for Windows了. 最近准备研究一下Docker的一些高级特性如Swarm Clusters,需要用到docker-machine,docker-machine目前仅支持Mac 或 Windows,由于没有Mac所以需要在Windows上运行Docker.官方声称Docker for Windows是一个在Windows系统中创建容器化App的完整开发平台.看完这篇文章,或许你会对Docker和Windows有重新的认识,一改之前对Windows的那些"不好感

使用WSL连接Docker for Windows

在Windows下安装Docker for Windows Cotana搜索功能,打开Windows的Hype-v功能(注:会影响Virtualbox和Vmware的使用)并重启电脑. 从Docker官方网站下载Docker for windows并安装. 右键Docker for windows程序小图标--Settings--general--expose daemon on tcp://localhost:2375 without TLS 右键Docker for windows程序小图标

Kitematic - VirtualBox is not installed. Docker for windows 10

Kitematic - VirtualBox is not installed. Docker for windows 10 https://github.com/docker/kitematic/issues/2499 THE FIX FOR WINDOWS IS to delete the contents of C:\Users\myuser\AppData\Roaming\Kitematic\Local Storage 原文地址:https://www.cnblogs.com/rgqan

Net core 2.x - docker(for windows)-linux配置及项目发布

将.net core2.x+sqlserver项目发布到docker.呵呵,操作很自如,如下. 1.罗嗦几句 在跑起来之前浪费了不少时间和精力,起初是将docker for windows的环境转换成了 window(安装docker for windows之后,右下角的小鲸鱼右击之后转换),但是很操蛋,也做了随笔但是没有发布之保存了草稿,记录了很多的问题以及问题的解决方式,浪费了一天时间.跑起来之后感觉幸福来之不易所以拿出来分享下.下面看我们的效果图; 2.效果预览 ...其他内容 可以看到我

Docker for Windows 使用入门

原文:Docker for Windows 使用入门 欢迎来到Docker for Windows! Docker是用于创建Docker应用程序的完整开发平台,Docker for Windows是在Windows系统上开始使用Docker的最佳方式. 如果你没有安装Docker for Windows,请阅读这篇文章:Windows 10 安装 Docker for Windows 检查Docker Engine,Compose和Machine的版本 启动您最喜爱的shell(cmd.exe,

docker在windows中的测试学习

首先推荐一个地址,对docker初学者非常有用 http://www.cnblogs.com/CloudMan6/tag/%E5%AE%B9%E5%99%A8/default.html?page=3 我自己的测试: 对docker而言,我也是初学者,在学习过程中,是不断的解决问题. 计划做两个附件 第一个附件:docker在vmware esxi虚拟机中的安装测试,windows 第二个附件:docker在vmware esxi虚拟机中的安装测试,linux-->centos7

Docker for Windows安装与Linux+PHP开发环境搭建(一)

Docker是什么? 简单得来说,Docker是一个由GO语言写的程序运行的"容器"(Linux containers, LXCs); 目前云服务的基石是操作系统级别的隔离,在同一台物理服务器上虚拟出多个主机.Docker则实现了一种应用程序级别的隔离; 它改变我们基本的开发.操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的"容器"上来. Docker的好处 Docker的优点:运行快.部署敏捷.灵活.轻量.开源免费. Boot2Docker是一个专为Do

Docker的安装和使用说明——Docker for Windows

一.Docker安装 1.1官方方法 官方下载页面:http://www.docker.com/products/docker#/windows 官方下载地址:https://download.docker.com/win/stable/InstallDocker.msi 1.2推荐方法: 1.2.1 DockerToolbox官方地址:http://www.docker.com/products/docker-toolbox 官方最新版:https://github.com/docker/to

(4.14)Nginx实际应用学习...(基于windows)

(4.14)Nginx实际应用学习...(基于windows) mark 一下... 坚持就是胜利