• Docker笔记


    一、Docker概述

    1.环境配置难题

    软件开发麻烦事--环境配置。如果两台计算机环境不同,那么运行前还需要配置环境,安装依赖等等。

    2.虚拟机

    虚拟机就是带环境安装的一种解决方案,它可以在一个操作系统上运行另一个操作系统,但是虚拟机占用资源多、冗余步骤多、启动慢等等缺点。

    3.linux容器

    针对于虚拟机的缺点,linux开发了另一种虚拟化技术:linux容器。

    linux容器是对进程进行隔离,即在正常进程外套了一个保护层。

    4.docker

    docker属于linux容器的一种封装,提供简单易用的容器使用接口,它是目前最流行的linux容器解决方案。

    docker将应用程序与该程序的依赖,打包在一个文件里面,运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了docker,就不用担心环境问题。

    二、docker应用

    docker把应用程序及其依赖,打包在image文件里,只有通过这个文件,才能生成docker容器。image文件可以看做是容器的模板,docker根据image文件生成容器的示例,同一个image文件,可以生成多个同时运行的容器示例。

    image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。

    # 列出本机的所有 image 文件。
    $ docker image ls
    
    # 删除 image 文件
    $ docker image rm [imageName]

    image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不是从零开始制作。

    为了方便共享,image 文件制作完成后,可以上传到网上的仓库。Docker 的官方仓库 Docker Hub 是最重要、最常用的 image 仓库。此外,出售自己制作的 image 文件也是可以的。

    1.示例

    ①将image拉取到本地

    $ docker image pull library/hello-world

     利用docker image pull 命令将library/hello-world image文件拉取到本地。(library是image所在的组,可省略)

     ②运行image文件

    $ docker container run hello-world

    利用docker container run 命令将image文件生成一个运行的容器实例。运行之后hello world容器会自动终止。但有些容器不会自动终止,例如提供某服务,手动终止命令为

    $ docker container kill [containID]

    2.容器文件

    image文件生成的容器示例也是一个文件,称为容器文件,即一旦容器生成,则存在image文件和容器文件,而且关闭容器不会删除容器文件。

    $ docker container ls
    列出本机正在运行的容器
    
    $ docker container ls -all
    列出所有容器,包括停止的容器
    
    $ docker container rm [containerID]
    删除容器文件

    3.制作自己的docker容器

    如果制作自己的image,需要用到Dockerfile文件,它本身是一个文本文件,用来配置image。Docker根据该文件生成二进制的image文件。

     ①编写Dockerfile文件

    在项目的根目录新建.dockerignore文件,填写打包时要排除的路径,例如.git、依赖等

    在项目的根目录新建Dockerfile,填写(示例):

    FROM ubuntu:16.04RUN apt upgrade
    RUN apt install python3
    RUN apt install vim
    RUN apt install pip3
    EXPOSE 3000
    CMD cd ..
    • FROM node:8.4 : 指定使用哪个镜像源。
    • RUN npm install : RUN指令是告诉docker在镜像内执行的命令,安装了什么等。
    • EXPOSE 3000 : 将容器3000端口暴露出来,允许外部连接这个端口。

    ②创建image文件

    有了Dockerfile文件后,就可以使用docker image build命令创建image文件。

    $ docker image build -t koa-demo .
    或
    $ docker image build -t koa-demo:0.0.1 .

    -t表示指定image文件名字,后面还可以用冒号指定标签,如果不指定默认的标签就是latest。最后的 . 表示Dockerfile的路径,即当前路径。运行之后就可以看到生成的image文件了。

    ③生成容器

    参考:http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

    http://www.ruanyifeng.com/blog/2018/02/docker-wordpress-tutorial.html

    参考自:阮一峰的网络日志

     
  • 相关阅读:
    贝叶斯思想的实质之我见
    强化学习基础概念理解
    Thinkpad x200用户只能放弃生化危机5(PC版), 希望能全速运行星际争霸2!
    This is it
    今天自己掏腰包去买联通iPhone有几位?
    今天是我的生日:)
    2009已经到来 / 2009 Just the Beginning
    好评如潮的PS3游戏《抵抗2 Resistance2》你玩了吗?
    生化危机5 / BIOHAZARD5 简直就是一款完美的印钞机?(+2009.4.9)
    一部好电影《第九区 District 9》
  • 原文地址:https://www.cnblogs.com/LMIx/p/13151550.html
Copyright © 2020-2023  润新知