栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker入门(一)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker入门(一)

镜像

镜像是运行容器的前提, 官方的 Docker Hub 网站已经提供了数十万个镜像供开放下载。

  • 拉取ubuntu18.02版本的镜像
docker pull ubuntu:18.04

  • 查看主机上的全部镜像
docker images

在列出信息中, 可以看到几个字段信息:
来自于哪个仓库, 比如 ubuntu 表示ubuntu 系列的基础镜像;
镜像的标答信息, 比如 18.04 、 latest 表示不同的版本信息。 标签只是标记, 并不能标识镜像内容;
镜像的ID(唯一标识镜像), 如果两个镜像的ID相同, 说明它们实际上指向了同一个镜像, 只是具有不同标签名称而已;
创建时间, 说明镜像最后的更新时间;
镜像大小, 优秀的镜像往往体积都较小。

  • 利用该镜像创建一个容器,在其中运行bash应用, 执行打印 "Hello World"命令:
docker run -it ubuntu:18.04 bash 
echo "Hello World" 
exit
  • 使用tag命令添加镜像标签
    为了方便在后续工作中使用特定镜像,还可以使用docker tag命令来为本地镜像任意添加新的标签。 例如,添加 一个新的myubuntu: latest镜像标签:
docker tag ubuntu:latest myubuntu:latest
  • 搜索镜像
    Docker 镜像的 search 子命令。 使用 docker search 命令可以搜索
    Docker Hub 官方仓库中的镜像。 语法为 docker search [option] keyword
    例如, 搜索官方提供的带 nginx关键字的镜像, 如下所示:
docker search --filter=is-official=true nginx
  • 删除和清理镜像
    1.使用标签删除镜像
docker rmi myubuntu:latest

2.使用id删除镜像
当使用 docker rmi 命令, 并且后面跟上镜像的 ID (也可以是能进行区分的部分 ID 串前缀)时, 会先尝试删除所有指向该镜像的标签, 然后删除该镜像文件本身。

  • 清理镜像
    如下命令会自动清理临时的遗留镜像文件层, 最后会提示释放的存储空间
docker image prune -f
  • 创建镜像
    基于已有容器创建
    先启动ubuntu镜像,在其中创建一个test文件后退出
docker run -it ubuntu:18.04 /bin/bash
touch test
exit

上述启动的容器id为7353ff2a1d40
基于该容器创建镜像

docker commit -m "add a new file" -a "zhaoji" 7353ff2a1d40 test:0.1

创建正常会返回镜像id
查看镜像已经创建成功

  • 存出和载入镜像
    1 存出镜像
    执行以下命令即可导出镜像到本地文件
docker save -o ubuntu_18.04.tar ubuntu:18.04


2 载入镜像
执行以下命令即可导入镜像及其相关元数据(包括标签等)

docker load -i ubuntu_18.04.tar
  • 上传镜像
    执行以下命令会将镜像上传到docker hub镜像仓库(需提前注册)
docker tag ubuntu:18.04 zhaoji/ubuntu:18.04
docker push zhaoji/ubuntu:18.04

第一次上传时会提示输入登录信息,之后会将登录信息保存在本地~/.docker目录下

容器

容器是 Docker 的另 个核心概念 简单来说,容器是镜像的一个运行实例。所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层,同时,容器中的应用进程处于运行状态
如果认为虚拟机是模拟运行的一整套操作系统(包括内核 应用运行态环境和其他系统环境)和跑在上面的应用 那么 Docker 容器就是独立运行的一个(或一组)应用,以及它们必需的运行环境。

  • 创建容器
    以下命令将基于ubuntu镜像创建一个容器 ps命令可查看目前的容器
docker create -it ubuntu:18.04
docker ps -a

  • 启动容器
    使用create命令创建的容器处于停止状态,可以用start命令启动
docker start 9bd87e5a570d
  • 停止容器
    1 暂停容器
docker pause 9bd87e5a570d

2 取消暂停

docker unpause 9bd87e5a570d

3 终止容器

docker stop 9bd87e5a570d

3 重启容器

docker restart 9bd87e5a570d
  • 进入容器
docker attach 7353ff2a1d40

然而使用 attach 命令有时候并不方便 当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示;当某个窗口因命令阻塞时,其他窗口也无法执行操作了
Docker 1.3.0 版本起, Docker 提供了一个更加方便的工具 exec 命令,可以在运行中容器内直接执行任意命令
例如:进入到刚刚创建并启动的容器,并启动一个bash

docker exec -it 7353ff2a1d40 /bin/bash

可以打开一个新的bash终端与容器交互且不影响容器内的其他应用

  • 删除容器
docker rm 7353ff2a1d40
  • 导入和导出容器
    某些时候,需要将容器从一个系统迁移到另外一个系统,此时可以使用 Docker 的导入和导出功能,这也是 Docker 自身提供的一个重要特性
# 导出容器
docker export -o test_run.tar dea042355431
#导入容器
#导出的文件又可以使用 docker import 命令导人变成镜像
docker import test_run.tar test_import:1.0
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/333423.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号