GVKun编程网logo

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

13

此处将为大家介绍关于学习dockeronwindows(1):为什么要使用docker的详细内容,并且为您解答有关为什么需要使用docker的相关问题,此外,我们还将为您介绍关于(二)Windows进

此处将为大家介绍关于学习 docker on windows (1): 为什么要使用 docker的详细内容,并且为您解答有关为什么需要使用docker的相关问题,此外,我们还将为您介绍关于(二) Windows 进行 Docker CE 安装(Docker Desktop)、167 docker docker构建nginx容器系列问题 docker registry docker run docker toolbo、docker 1 为什么要使用docker、Docker for Windows 10中的DOCKER_CERT_PATH是什么?的有用信息。

本文目录一览:

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

学习 docker on windows (1): 为什么要使用 docker(为什么需要使用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 的原因.......

(二) Windows 进行 Docker CE 安装(Docker Desktop)

(二) Windows 进行 Docker CE 安装(Docker Desktop)

参考并感谢

  • 官方文档: https://docs.docker.com/docker-for-windows/install/

下载地址 https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe

操作系统要求

  • Windows 10 64位:Pro,Enterprise或Education(Build 15063或更高版本)
  • 必须启用Hyper-V和容器Windows功能
  • 在Windows 10上成功运行Client Hyper-V需要以下硬件先决条件:
    • 4GB系统RAM
    • 必须在BIOS设置中启用BIOS级硬件虚拟化支持

《(二) Windows 进行 Docker CE 安装(Docker Desktop)》CSDN地址:https://blog.csdn.net/madmarszff/article/details/100902560

《(二) Windows 进行 Docker CE 安装(Docker Desktop)》博客园地址:https://www.cnblogs.com/godzff/p/11528560.html

《(二) Windows 进行 Docker CE 安装(Docker Desktop)》简书地址:

167 docker docker构建nginx容器系列问题 docker registry docker run docker toolbo

167 docker docker构建nginx容器系列问题 docker registry docker run docker toolbo

docker构建nginx容器系列问题


background : 最近为小伙伴们筹划docker系列的技术分享,研究了一会docker相关技术, 在此记录一下构建nginx容器时候的坑

1.nginx服务器根目录问题

docker 官方镜像提供的nginx基于debian/jessie平台,其文件结构和ubuntu中的nginx中并不相同

eg:

run一个niginx容器

<span>//80端口被占用,so...</span>
$ sudo docker run <span>-it</span><span>-p</span><span>800</span>:<span>800</span> nginx
$ sudo docker ps 

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                   NAMES
<span>1801</span>a32aab54        nginx               <span>"nginx -g ''daemon off"</span><span>2</span> minutes ago       Up <span>2</span> minutes        <span>80</span>/tcp, <span>443</span>/tcp, <span>0.0</span><span>.0</span><span>.0</span>:<span>800</span><span>-&gt;</span><span>800</span>/tcp   berserk_kare
登录后复制

进入容器内部

<span>$ </span>sudo docker exec -it <span>1801</span>a32aab54 /bin/bash
root<span>@1801a32aab54</span><span>:/</span><span># </span>
登录后复制

查看nginx目录

<span># cd /etc/nginx/</span>
conf<span>.d</span>/         koi-utf         mime<span>.types</span>      nginx<span>.conf</span>      uwsgi_params    
fastcgi_params  koi-win         modules/        scgi_params     win-utf  
登录后复制

可以看到不仅没有熟悉的 /sites-available,也没有 /sites-enabled

继续查看nginx配置

<span># cat /conf.d/default.conf</span><span>server</span> {
    listen       <span>80</span>;
    server_name  localhost;

    <span>#charset koi8-r;</span><span>#access_log  /var/log/nginx/log/host.access.log  main;</span>    location / {
        root   /usr/share/nginx/html;
        <span>index</span><span>index</span>.html <span>index</span>.htm;
    }

    <span>#error_page  404              /404.html;</span><span># redirect server error pages to the static page /50x.html</span><span>#</span>
    error_page   <span>500</span><span>502</span><span>503</span><span>504</span>  /<span>50</span>x.html;
    location = /<span>50</span>x.html {
        root   /usr/share/nginx/html;
    }
    <span>#...省略php-fpm配置,好长..</span>
}
登录后复制

根目录配置: root /usr/share/nginx/html;

测试

<span># cd /usr/share/nginx/html</span><span># touch index.html</span><span># echo "test nginx in docker" &gt;index.html</span>
登录后复制

php-fpm配置相关

'').addClass(''pre-numbering'').hide(); $(this).addClass(''has-numbering'').parent().append($numbering); for (i = 1; i '').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了167 docker docker构建nginx容器系列问题,包括了docker,nginx方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

docker 1 为什么要使用docker

docker 1 为什么要使用docker

一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。做为开发+运维之间的协作,我们需要关心很多东西,这也就是很多互联网公司都不得不面对的问题,特别是各种版本的迭代后,不同版本环境的兼容,对运维人员都是考验。 

    Docker只所以发展如此迅速,也是因为它对此给了一个标准化的解决方案。 

    环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题, 软件可以带环境安装 ?也就是说, 安装的时候,把原始环境一模一样的复制过来。开发人员利用Docker可以消除协作编码是“在我机器上可以正常工作”的问题。 

   之前在服务器配置一个应用的运行环境,要安装各种软件,比如tomcat的jdk等,安装和配置这些东西有多麻烦就不说了,他还不能跨平台,假如我们在windows上安装的这些环境,到了linux上又得重新安装,况且就算不跨操作系统,换另一台操作系统的服务器,要迁移应用也很麻烦。

  传统上认为,软件编码开发、测试结束后,开发团队也得准备完整的部署文档,让运维团队得以部署应用。开发团队需要清除的告诉运维,用的全部配置文件和所有的软件环境。不过,即便如此,仍然常常发生部署失败的情况。Docker镜像的设计,使得Docker得以打破过去的程序即应用的概念,透过镜像打包,达到应用程序跨平台的无缝接轨运行

Docker for Windows 10中的DOCKER_CERT_PATH是什么?

Docker for Windows 10中的DOCKER_CERT_PATH是什么?

当我使用Docker ToolBox时,我可以运行docker-machine env来打印所有当前的环境variables。

在Intellij IDEA for Windows中configurationC ++ SDK

在Windows上使用Python虚拟环境时有哪些缺陷和解决方法?

Windows安装rmagick错误

Windows中需要rJava的问题

如何使用指定的扩展名在Windows文件浏览器中search文件?

但是,如果是用于窗户的泊坞窗,则不存在泊坞窗机器

不过, 使用docker-machine ,您可以使用hyperv驱动程序创建一台计算机。 (请参阅docker-machine驱动程序 )

请参阅“ Microsoft Hyper-V ”

有问题正在进行,但问题779

DOCKER_CERT_PATH应该是C:Users<login>machinemachines<machinename>

使用Docker for Windows,它假设一个证书路径为

%USERPROFILE%.dockermachinecerts

除非你指定了环境变量

DOCKER_CERT_PATH

如果你从Docker ToolBox切换到Docker for Windows,你可能需要删除这个环境变量才能正常工作。

今天关于学习 docker on windows (1): 为什么要使用 docker为什么需要使用docker的介绍到此结束,谢谢您的阅读,有关(二) Windows 进行 Docker CE 安装(Docker Desktop)、167 docker docker构建nginx容器系列问题 docker registry docker run docker toolbo、docker 1 为什么要使用docker、Docker for Windows 10中的DOCKER_CERT_PATH是什么?等更多相关知识的信息可以在本站进行查询。

本文标签: