欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker快速入门使用指南教程

程序员文章站 2022-06-17 08:47:01
...

定义和用处

  • 定义

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。

  • 用处
    1. 隔离性
    2. 轻便,便于维护管理
    3. 弹性,同时起用多个
    4. 可复用镜像

概念

  • 镜像

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

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

  • 镜像仓库

    存储镜像的仓库,类似于Maven仓库。可在本地服务器部署镜像仓库,也可使用阿里云或官方仓库。

  • 容器

    **image 文件生成的容器实例,本身也是一个文件,称为容器文件。**关闭容器并不会删除容器文件,只是容器停止运行而已。

  • Dockerfile

    Dockerfile是一个文本文件,里面编写多条命令,这些命令描述了一个镜像构建的细节。Docker 根据 该文件生成二进制的 image 文件。

安装和配置

  • centos7安装

    yum install -y docker
    
  • 配置镜像仓库

    ​ 打开 /etc/docker/daemon.json,插入以下数据

    {
      "registry-mirrors": ["你的镜像地址(https://c6n8vys4.mirror.aliyuncs.com)"]
    }
    

使用命令

  • 拉取镜像

    docker pull redis:3.0

  • 查询镜像

    docker search redis

  • 上传镜像

    docker push redis:3.0

  • 删除镜像

    docker rmi redis:3.0

  • 制作springboot jar镜像

    1. 编写Dockerfile文件(参看Dockerfile 指令详解

      FROM  jdk:alpine-jdk8
      VOLUME /tmp
      ADD app.jar app.jar
      ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
      
    2. maven 打springboot的jar

    3. 将Dockerfile文件和jar放在linux同一目录,执行以下命令(其中-d代表名字 . 代表当前目录)

      docker build -d myApp:1.0 .
      
  • 创建并启用容器(其中-d代表后台运行,–name postgres96代表容器名字,-p 5433:5432代表宿主机端口为5433,容器内端口为5432,–network testnet代表使用桥连接中testnet的网络,–network-alias postgres96代表在testnet网络中的别名为postgres96,同样在该网络中的容器,可通过域名为postgres96来访问该容器)

    docker run -d --name postgres96 -p 5433:5432 --network testnet --network-alias postgres96 postgres:9.6.11
    
  • 启用容器

    docker start postgres96
    
  • 停止容器

    docker stop postgres96
    
  • 删除容器

    docker rm postgres96
    
  • 创建网络(参看Docker容器互访三种方式

    docker network create testnet
    
  • springboot 的日志挂载数据卷

    1. 日志配置文件中目录为 /logs/app
    2. docker 启动镜像时加上 -v /usr/local/app/logs:/logs/app
    docker run -d -v /usr/local/logs/app:/logs/app --name myApp -p 8081:8080 --network testnet myApp:1.0
    
  • 进入容器

    docker exec -it redis /bin/bash
    

更多命令参看Docker 命令大全

网络模式

Docker网络模式 配置 说明
host模式 –net=host 容器和宿主机共享Network namespace。
container模式 –net=container:NAME_or_ID 容器和另外一个容器共享Network namespace。 kubernetes中的pod就是多个容器共享一个Network namespace。
none模式 –net=none 容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。
bridge模式 –net=bridge (默认为该模式),容器互访可使用同一网桥或创建连接
相关标签: k8s docker 运维