• Docker


    一、初始Docker

    1、概念

    Docker是一个用于开发、交付和运行应用程序的开放平台。 Docker 使您能够将应用程序与基础架构分开,以便您可以快速交付软件。使用 Docker,您可以管理您的基础架构以与管理应用程序相同的方式。通过利用 Docker 的 交付、测试和部署代码的方法,您可以显著减少编写代码和在生产环境中运行代码之间的延迟。

    2、作用

    解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。

    3、优势

    ①可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统;

    ②运行时利用沙箱机制形成隔离容器,各个应用互不干扰;

    ③启动、移除都可以通过一行命令完成,方便快捷。

    4、常见命令

    命令

    说明

    文档地址

    docker pull

    拉取镜像

    docker pull

    docker push

    推送镜像到DockerRegistry

    docker push

    docker images

    查看本地镜像

    docker images

    docker rmi

    删除本地镜像

    docker rmi

    docker run

    创建并运行容器(不能重复创建)

    • --name:指定容器名称

    • -p:指定端口映射

    • -d:让容器后台运行

    docker run

    docker stop

    停止指定容器

    docker stop

    docker start

    启动指定容器

    docker start

    docker restart

    重新启动容器

    docker restart

    docker rm

    删除指定容器

    docs.docker.com

    docker ps

    查看容器

    docker ps -a 查看所有容器,包括已经停止的

    docker ps

    docker logs

    查看容器运行日志

    添加 -f 参数可以持续查看日志

    docker logs

    docker exec

    进入容器

    docker exec

    docker save

    保存镜像到本地压缩文件

    docker save

    docker load

    加载本地压缩文件到镜像

    docker load

    docker inspect

    查看容器详细信息

    docker inspect

    docker exec -it mn bash

    进入容器命令

    • -it : 给当前进入的容器创建一个标准输入、输出终端,

    • 允许我们与容器交互

    • mn :要进入的容器的名称

    • bash:进入容器后执行的命令,

    • bash是一个linux终端交互命令

    二、数据卷 

    1、数据卷(volume)

    数据卷(volume)是一个虚拟目录,是容器内目录宿主机目录之间映射的桥梁。

    注意/var/lib/docker/volumes这个目录就是默认的存放所有容器数据卷的目录,其下再根据数据卷名称创建新目录,格式为/数据卷名/_data

    2、数据卷命令

    命令

    说明

    文档地址

    docker volume create

    创建数据卷

    docker volume create

    docker volume ls

    查看所有数据卷

    docs.docker.com

    docker volume rm

    删除指定数据卷

    docs.docker.com

    docker volume inspect

    查看某个数据卷的详情

    docs.docker.com

    docker volume prune

    清除数据卷

    docker volume prune

    注意:容器与数据卷的挂载要在创建容器时配置,对于创建好的容器,是不能设置数据卷的。而且创建容器的过程中,数据卷会自动创建。 

    三、镜像

    1、定义

    镜像就是一堆文件的集合,按照操作的步骤分层叠加而成,每一层形成的文件都会单独打包并标记一个唯一id,称为Layer)。这样,如果我们构建时用到的某些层其他人已经制作过,就可以直接拷贝使用这些层,而不用重复制作。

    2、Dockersfile

    Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。

    指令

    说明

    示例

    FROM

    指定基础镜像

    FROM centos:6

    ENV

    设置环境变量,可在后面指令使用

    ENV key value

    COPY

    拷贝本地文件到镜像的指定目录

    COPY ./xx.jar /tmp/app.jar

    RUN

    执行Linux的shell命令,一般是安装过程的命令

    RUN yum install gcc

    EXPOSE

    指定容器运行时监听的端口,是给镜像使用者看的

    EXPOSE 8080

    ENTRYPOINT

    镜像中应用的启动命令,容器运行时调用

    ENTRYPOINT java -jar xx.jar

    3、构建镜像 

    #准备一个Demo项目和对应Dockerfile拷贝到虚拟机

    #创建镜像目录,进入镜像目录

    mkdir /root/demo

    cd /root/demo

    #构建镜像

    docker build -t docker-demo:1.0 .

    # 1.创建并运行容器

    docker run -d --name dd -p 8090:8090 docker-demo:1.0

    # 1.创建并运行容器

    docker run -d --name dd -p 8090:8090 docker-demo:1.0

    四、网络 

    命令

    说明

    文档地址

    docker network create

    创建一个网络

    docker network create

    docker network ls

    查看所有网络

    docs.docker.com

    docker network rm

    删除指定网络

    docs.docker.com

    docker network prune

    清除未使用的网络

    docs.docker.com

    docker network connect

    使指定容器连接加入某网络

    docs.docker.com

    docker network disconnect

    使指定容器连接离开某网络

    docker network disconnect

    docker network inspect

    查看网络详细信息

    docker network inspect

     注意:

    • 在自定义网络中,可以给容器起多个别名,默认的别名是容器名本身

    • 在同一个自定义网络中的容器,可以通过别名互相访问

  • 相关阅读:
    ECRS工时分析软件:精益成本管理的得力助手
    面试官:IoC 和 DI 有什么区别?
    K8S原来如此简单(五)Metrics Server与HPA
    PyTorch学习笔记(四)
    Flutter布局组件:水平/垂直组件、叠加布局组件、流式布局组件
    金仓数据库KingbaseES安全指南--5.2. 数据完整性保护
    MQ认证探讨
    Django之初入门
    电脑数据丢失如何恢复呢?
    人工智能基础 | 回归分析(四)
  • 原文地址:https://blog.csdn.net/weixin_62767544/article/details/132766866