Docker笔记

129 阅读3分钟

Docker

由镜像和容器组成

  • 镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
  • 容器(Container):镜像中的应用运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。

Docker结构:

  • 服务端:接收命令或远程请求,操作镜像或容器
  • 客户端:发送命令或请求到Docker服务端

DockerHub:

  • 一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry

Docker基本操作

  • docker images 镜像操作
  • docker rmi 删除镜像
  • docker pull 拉取镜像
  • docker push 提交镜像
  • docker save 保存镜像tar文件
  • docker load 读取tar文件加载镜像

Docker基本操作-容器

docker run命令常见参数
  • --name:指定容器名称
  • -p:指定端口映射
  • -d:让容器后台运行
查看容器日志的命令
  • docker logs
  • 添加 -f 参数可以查看动态日志
查看容器状态
  • docker ps
  • -f参数可强制删除运行中的容器
删除容器:
  • docker rm
进入具体容器命令
docker exec -it mn bash
#docker exec:进入容器内部,执行一个命令
#-it:给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
#mn:要进入的容器的名称
#bash:进入容器后执行的命令,bash是一个linux终端交互命令 

Docker数据卷

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录

数据卷的作用
  • 将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全
数据卷操作
  • docker volume create 创建
  • docker volume ls 查看所有
  • docker volume inspect 查看详情
  • docker volume rm 删除一个
  • docker volume prune 删除未使用的

可以指定宿主机目录或文件挂在到容器对应的目录或文件

Dockerfile自定义镜像

Dockerfile

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

  • FROM:指定基础镜像

    • FROM centos:7
  • ENV:设置环境变量,可在后面指令使用

    • ENV key value
  • COPY:拷贝本地文件到镜像的指定目录

    • COPY ./mysql... /tml
  • RUN:执行Linux的shell命令,一般是安装过程的命令

    • RUN yum install gcc
  • EXPOSE:指定容器运行时监听的端口(注意不是映射端口)

    • EXPOSE 8080
  • ENTRYPOINT:镜像中应用的启动命令,容器运行时调用

    • ENTRYPOINT java -jar xx.jar

有一个java:8-alpine镜像可以为我们创建java8环境的基础镜像

DockerCompose作用

快速部署分布式应用,无需逐个构建镜像和部署

Docker镜像仓库

简化版镜像仓库

Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。

带有图形化界面的版本

使用DockerCompose部署带有图像界面的DockerRegistry