云原生Docker和K8S 02-Docker进阶

一、容器的导入与导出

首先,要确定正在运行的容器:

  • 命令格式:

    docker commit [ 容器名称|ID ] 生成新的镜像名字

    docker commit 容器ID mysql:latest

save和load 不会丢弃历史记录和元数据,并可以回滚版本:

导出镜像为本地文件:

  • sudo docker save -o /usr/local/mysql.tar mysql:latest(镜像名)
  • sudo docker save mysql:latest > /usr/local/mysql.tar

导入镜像:

  • docker load --input /usr/local/mysql.tar
  • docker load -i /usr/local/mysql.tar
  • docker load < /usr/local/mysql.tar

export和import 之前镜像的层级删干净,只保留最新的快照文件:

导出镜像:

  • docker export 容器ID> /usr/local/mymysql.tar 

导入镜像:

  • docker import tar包名 镜像名(自定义)

二、数据卷

数据卷:是一个可供一个或多个容器使用的特殊目录

特性: 其生存周期独立于容器的生存周期·

  • 数据卷可以在容器之间共享和重用 ·
  • 对数据卷的修改会立马生效 ·对数据卷的更新,不会影响镜像 ·
  • 数据卷默认会一直存在,即使容器被删除

为什么需要数据卷?

  • 在多个容器之间共享数据,多个容器可以同时以只读或者读 写的方式挂载同一个数据卷,从而共享数据卷中的数据。
  • 当宿主机不能保证一定存在某个目录或一些固定路径的文件 时,使用数据卷可以规避这种限制带来的问题。
  • 当你想把容器中的数据存储在宿主机之外的地方时,比如远 程主机上或云存储上。
  • 当你需要把容器数据在不同的宿主机之间备份、恢复或迁移时,数据卷是很好的选择。

数据卷应用

创建数据卷

  • docker volume create 数据卷名称
  • 创建数据卷之后,默认会存放到目录:/var/lib/docker/volume/数据卷名称/_data目录下

查看数据卷

  • docker volume inspect数据卷名称

查看全部数据卷信息

  • docker volume ls

删除数据卷

  • docker volume rm 数据卷名称

应用数据卷

当你映射数据卷时,如果数据卷不存在,Docker 会帮你自动创建

  • docker run -v 数据卷名称:容器内路径 镜像ID

直接指定一个路径作为数据卷的存储位置

  • docker run -v 路径:容器内部的路径 镜像ID
安装gogs,进行环境配置
docker pull gogs/gogs

创建gogs存储目录
mkdir -p /var/gogs

强制删除运行中的容器
docker rm -f 容器名

运行docker命令
docker run --name=gogs -p 7777:22 -p 9999:3000 -v /var/gogs:/data gogs/gogs

启动后,访问liunx 的ip+端口 进入设置

DockerFile:

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明,其中每条指令对应Linux中的一条命令,Docker程序将读取Dockerfile中的指令生成指定镜像。

Dockerfile结构大致分为四个部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。Dockerfile每行支持一条指令,每条指令可带多个参数,支持使用以#号开头的注释。

构建镜像 (注意后面那个 .):

  • -f 指定 dockerfile文件
  • -t 指定image tag 标签
  • docker build -f mysql -t mysql:5.6 .
  • 查看构建的镜像 docker images
  • 启动mysql容器 docker run -d --name mysql mysql:5.6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值