• docker下载安装


    推荐一个国内的软件下载平台(使用百度云网盘下载):https://oomake.com/download/docker-windows

    docker安装需要window server 2016以上。

    直接windows update
     
    docker安装:首先开启windows的hyper-v,然后直接点击下载的应用程序,启动时它会先检查你的windows系统是否满足条件,如果不满足,他会退出安装。如果满足,他会开始安装。【安装时请退出360等软件】,安装过程中会多次重启计算机。

     
    安装完成后可用git bsah执行:$ docker run hello-world
    结果如下:
     
    写在前面的话:
    实际上docker只能在linux系统下运行,Windows下运行必要要支持Hyper-v( 注:windows专业版本才有这个功能)。安装docker的时候会自动创建一个虚拟的linux系统,后续的其他操作实际上是间接使用这个虚拟系统进行的。

    docker是什么?
    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
    Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
    容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
     
    docker的应用场景:
    • Web 应用的自动化打包和发布。
    • 自动化测试和持续集成、发布。
    • 在服务型环境中部署和调整数据库或其他的后台应用。
    • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
     
    docker架构:
    • docker是典型的c/s架构【类似于网易云】,使用远程API来管理和创建Docker容器。
    • Docker容器通过Docker镜像来创建
    • 容器与镜像的关系类似于面向对象中的对象与类。

    daemon:守护进程
    registries:注册处
    细细体味镜像于容器之间的关系。

     
    对docker有个了解之后,开始实践了,实践出真知:
    对于最早在git bash里运行的$ docker run hello-world是什么意思?
    -docker允许你在容器里运行应用程序,使用docker run命令来在容器内运行一个应用程序。
    也就是说这个命令是运行一个应用程序,这个应用程序名叫hello-world。我们详细看一个例子
     
    例子:对下面这个命令进行解析:
    docker run ubuntu:15.10 /bin/echo "Hello world" 【windos不可行】
    各个参数解析:
    • docker: Docker 的二进制执行文件。
    • run:与前面的 docker 组合来运行一个容器。
    • ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
    • /bin/echo "Hello world": 在启动的容器里执行的命令
    以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。
    类比于hello-world,在git bash中输出也可以看到,docker首先从本地主机上查找hello-world镜像是否存在,显然是不存在的,docker从镜像仓库里下载了公共的hello-world镜像,然后运行了这个镜像,最后输出结果为:Hello from Docker!
     
     
    下面我们来学习一些命令:
    • 查看本地有哪些镜像
    docker images
    可以看到我们最开始下载的hello-world
     
    • 查看当前正在运行的容器
    docker ps
     
    由于hello-world已经运行结束,所以当前没有可运行的容器了。docker ps -a查看所有运行的容器包括已经停止的。
    • 查看某应用程序日志
    我刚刚下载了最新的windows镜像,并执行了PowerShell
    即:PS C:> docker run -it microsoft/windowsservercore powershell
    docker帮我下载了最新的windows镜像,下载完后执行了powershell命令帮我启动了powershell命令行工具。我在它启动的命令行工具里输入:systeminfo 查看当前下载的windows镜像的系统信息。输出如下:
     
    好了,现在我们来查看一下该应用程序(windows)输出的日志信息:
    首先我们看一下当前那些镜像在运行:docker ps -a 查看所有容器
    你可以看到之前的hello-world不过它的状态是exited,还有一个就是刚才我下载的window镜像。
     
    • 查看某容器内部标准输出:
    docker logs [ID或名字] || docker logs -f [ID或名字]
    -f表示 像使用 tail -f 一样来输出容器内部的标准输出。
    docker logs -f ce005d531a93
     
    可以看到日志里输出了容器内执行的情况,而且还有我输入的systeminfo命令
    • 查看某容器内的进程
    docker top [ID或名称]
    如查看刚才windows容器里所有进程:docker top ce005d531a93
     
    • 检查某应用程序
    使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息
    dockers inspect ce005d531a93
     
    • 停止、重启容器
    -停止:docker stop [ID/NAME]
    -重启:docker start [ID/NAME]
    • 移除容器 docker rm [ID/NAME]
    删除容器时,容器必须是停止状态,否则会报如下错误:
    runoob@runoob:~$ docker rm wizardly_chandrasekhar Error response from daemon: You cannot remove a running container bf08b7f2cd897b5964943134aa6d373e355c286db9b9885b1f60b6e8f82b2b85. Stop the container before attempting removal or force remove
    比如我们移除hello-world容器
    docker rm 377e748bef63 将返回移除容器的id
    • 下载最新的镜像 docker pull [ID/NAME]
    在执行该命令前,你首先要确保已经登陆你的docker hub账号和密码,你可以使用docker login命令在控制台进行登陆
    当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。类不类似于git命令 git clone,又像maven把仓库里的东西pull到本地。
    • 查找镜像 docker search httpd
     
    -NAME:镜像仓库源的名称
    -DESCRIPTION:镜像的描述
    -OFFICIAL:是否docker官方发布
    • 更新镜像
    更新镜像之前,我们需要使用旧的镜像来创建一个容器。
    $ docker run -t -i ubuntu:15.10 /bin/bash 返回容器ID:e218edb10161
    在运行的容器内使用 apt-get update 命令进行更新。相当于$ docker run -t -i ubuntu:15.10 /bin/bash apt-get update
    在完成操作之后,输入 exit命令来退出这个容器。
    此时ID为e218edb10161的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit来提交容器副本。
    $ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 f返回新镜像的ID:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
    各个参数说明:
    • -m:提交的描述信息
    • -a:指定镜像作者
    • e218edb10161:容器ID
    • runoob/ubuntu:v2:指定要创建的目标镜像名
    我们可以使用 docker images 命令来查看我们的新镜像 runoob/ubuntu:v2:
    • 构建镜像
    比如说你新建了一个web工程,想以后不管在哪台机器上,只要这台机器运行了docker,就可以在这台机器上部署你的web工程,那么你首先要把你的web工程发布成镜像然后push到你自己的远程的镜像仓库,以后在其他地方用直接pull下来就可以用了。怎么构建镜像?
     
     
     
     
     

    前进时,请别遗忘了身后的脚印。
  • 相关阅读:
    nginx的优化
    apache日志轮询技术
    PV IP UV的概念介绍
    日志文件记录的重要性
    linux chmod 755
    ssh免密码登录机器(使用公钥和秘钥进行加密来实现)
    ffmpeg基础
    linux使用grep和find查找内容
    为什么我们会越来越穷?
    从我干程序员开始 我就不准备干这个行业
  • 原文地址:https://www.cnblogs.com/liudaihuablogs/p/9929863.html
Copyright © 2020-2023  润新知