Docker入门与基本操作(2)

Docker镜像

使用 pull 从仓库中拉取镜像
docker pull NAME:TAG
// NAME 为仓库名称,如 registry.hub.docker.com/ubuntu:14.04
// TAG 为镜像的标签,用来区分版本信息 
查看本机已有镜像

每一项的意义见文章《 Docker入门与基本操作(1)》

docker images
为镜像添加标签

相当于给该镜像添加一个别名,两者ID一致(指向同一个镜像)

docker tag NAME:TAG NEW_NAME:TAG
删除镜像
docker rmi IMAGE
// IMAGE 可以为标签或ID
// 当用标签时,仅会删除该标签的镜像,如果该标签为某个镜像的别名,也只是删除该别名
// 当用ID时,会首先尝试删除所有指向该ID的标签,然后删除镜像本身
创建镜像

主要有3种方法:基于已有镜像的容器创建、基于本地模板创建、基于Dockerfile创建
1)基于已有镜像的容器创建
一般是在当前容器中做了修改,在主机中将修改过的容器提交为一个新的镜像

docker commit 当前容器ID(前几位即可) NAME:TAG
// 附加参数: -a 作者信息
//           -m 提交信息

2)基于本地模板导入
可以使用OpenVZ提供的模板来创建

cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04
保存和载入镜像

实现导出镜像到本地文件,从本地文件载入镜像

docker save -o xxx.tar NAME:TAG
docker load < xxx.tar

Docker 容器

创建容器

有两种方法,一种是 新建再运行;一种是新建同时运行

// 新建再运行
docker create -it NANE:TAG
docker start ID

// 新建同时运行
docker run -it NAME:TAG /bin/bash

// -i: 容器的标准输入保持打开
// -t: Docker分配一个伪终端
// /bin/bash: 容器运行的应用(示例)
// 涉及到 NAME:TAG 的都可以用 ID前几位代替
终止容器

exit 退出容器,但并没有停止容器

docker stop ID
// 停止所有容器
docker stop $(docker ps -aq)
进入容器

进入一个已经运行的容器,这样可以实现多个终端操作

docker exec -it ID /bin/bash
删除容器
docker rm ID
// 附加参数: -f: 强行删除一个运行中的容器
导入和导出容器

实现容器从一个系统迁移到另一个系统

// 导出容器(两种方式)
docker export -o xxx.tar ID
docker export ID > xxx.tar

// 导入容器
docker import xxx.tar - NAME:TAG

Docker 数据管理

  • 通过数据卷实现Docker容器与本机的数据共享
  • 通过数据卷容器实现Docker容器与容器的数据共享
数据卷

将主机操作系统目录直接映射进容器,类似 mount

  • 数据卷可以在容器间共享和重用
  • 对数据卷内数据的修改会立马生效,无论是本地操作还是容器内操作
  • 对数据卷的更新不会影响镜像,解耦了应用和数据
// 使用 -v 挂载本地目录(/src/data)到容器指定路径(/opt/data)作为数据卷
docker run -it NAME:TAG -v  /src/data:/opt/data
数据卷容器

当涉及到多个容器共享数据时,可以创建一个数据卷容器,供其他容器挂载

docker run -it -v /dbdata --name dbdata_ ubuntu
// 创建一个别名为dbdata_的容器,该容器使用ubuntu镜像,创建了一个数据卷挂载在 /dbdata

其他容器可以使用 –volumes-from 来挂载 dbdata_ 容器中的数据卷

docker run -it --volumes-from dbdata_ --name db1 ubuntu
// 创建一个别名为db1的容器,使用ubuntu镜像,挂载容器 dbdata_ 的数据卷到/dbdata目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值