Docker(数据卷、自定义镜像、网络)

数据卷

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

命令

说明

docker volume create

创建数据卷

docker volume ls

查看所有数据卷

docker volume rm

删除指定数据卷

docker volume inspect

查看某个数据卷的详情

docker volume prune

清除数据卷

  • 在执行docker run命令时,使用 -v 数据卷:容器内目录 可以完成数据卷挂载
  • 当创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建数据卷

mysql容器的数据挂载

  • 查看mysql容器,判断是否有数据卷挂载
  • 基于宿主机目录实现MySQL数据目录、配置文件、初始化脚本的挂载(查阅官方镜像文档)
  1. 挂载/root/mysql/data到容器内的/var/lib/mysql目录
  2. 挂载/root/mysql/init到容器内的/docker-entrypoint-initdb.d目录,携带课前资料准备的SQL脚本
  3. 挂载/root/mysql/conf到容器内的/etc/mysql/conf.d目录,携带课前资料准备的配置文件
  • 在执行docker run命令时,使用 -v 本地目录 : 容器内目录 可以完成本地目录挂载
  • 本地目录必须以“/”或 "./" 开头,如果直接以名称开头,会被识别为数据卷而非本地目录

-v mysql : /var/lib/mysql 会被识别为一个数据卷叫mysql

-v ./mysql : /var/lib/mysql 会被识别为当前目录下的mysql目录

自定义镜像

镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。

镜像结构

Dockerfile

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像。常见指令如下:

指令

说明

示例

FROM

指定基础镜像

FROM centos:6

ENV

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

ENV key value

COPY

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

COPY ./jre11.tar.gz /tmp

RUN

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

RUN tar -zxvf /tmp/jre11.tar.gz

&& EXPORTS path=/tmp/jre11:$path

EXPOSE

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

EXPOSE 8080

ENTRYPOINT

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

ENTRYPOINT java -jar xx.jar

我们可以基于Ubuntu基础镜像,利用Dockerfile描述镜像结构

也可以直接基于JDK为基础镜像,省略前面的步骤:

  • -t :是给镜像起名,格式依然是repository:tag的格式,不指定tag时,默认为latest
  • . :是指定Dockerfile所在目录,如果就在当前目录,则指定为"."

构建镜像的命令

docker build -t 镜像名 Dockerfile目录

网络

默认情况下,所有容器都是以bridge方式连接到Docker的一个虚拟网桥上:

加入自定义网络的容器才可以通过容器名互相访问,Docker的网络操作命令如下:

命令

说明

docker network create

创建一个网络

docker network ls

查看所有网络

docker network rm

删除指定网络

docker network prune

清除未使用的网络

docker network connect

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

docker network disconnect

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

docker network inspect

查看网络详细信息

  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值