实验1:使用命令操作Docker容器与镜像

举报
资源描述
实验1:使用命令操作Docker容器与镜像 【实验内容】 本实验已经安装好docker环境,后续对镜像以及容器进行了一些操作,包括服务启动类命令、常用的镜像与容器命令。 【实验目的】 1、熟悉帮助启动类命令的使用,启动docker服务 2、熟练掌握镜像命令的使用,知道如何查找镜像、拉取镜像以及镜像的使用与删除 3、掌握容器的创建与启动 4、了解容器与镜像的管理 5、了解容器运行原理 6、熟悉容器的启停与导入导出 【实验步骤】 步骤1 查看docker服务是否启动 步骤2 帮助启动类命令 步骤3 镜像命令 步骤4 容器命令 步骤1 查看docker服务是否启动 若出现上图示信息表示服务未启动,使用systemctl start docker命令启动服务。 若出现上图示信息表示服务正常启动。 步骤2 帮助启动类命令 Ø 启动docker: systemctl docker start Ø 停止docker: systemctl docker stop Ø 重启docker: systemctl docker restart Ø 查看docker状态: systemctl docker status Ø 查看docker概要信息: docker info Ø 查看docker总体帮助文档: docker --help Ø 查看docker命令帮助文档: docker 具体命令 –help 步骤3 镜像命令 (1) docker images 列出本地主机上的镜像 各个选项说明如下: l REPOSITORY:表示镜像的仓库源 l TAG:镜像的标签版本号 l IMAGE ID:镜像ID l CREATED:镜像创建时间 l SIZE:镜像大小 同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。 如果你不指定一个镜像的版本标签,例如:你只使用 centos,docker 将默认使用 centos:latest 镜像。 l 语法: docker images [OPTIONS] [REPOSITORY[:TAG]] l OPTIONS说明: Ø -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层); Ø --digests :显示镜像的摘要信息; Ø -f :显示满足条件的镜像; Ø --format :指定返回值的模板文件; Ø --no-trunc :显示完整的镜像信息; Ø -q :只显示镜像ID。 (2) docker search 从Docker Hub查找镜像。 l 语法: docker search [OPTIONS] TERM l OPTIONS说明: Ø --automated :只列出 automated build类型的镜像; Ø --no-trunc :显示完整的镜像描述; Ø -f <过滤条件>:列出收藏数不小于指定值的镜像。 l 案例: 从 Docker Hub 查找所有镜像名包含 java,并且收藏数大于 10 的镜像。 docker search -f stars=10 java l 参数说明: Ø NAME: 镜像仓库源的名称 Ø DESCRIPTION: 镜像的描述 Ø OFFICIAL: 是否docker官方发布 Ø stars: 类似Github里面的star,表示点赞、喜欢的意思。 Ø AUTOMATED: 自动构建。 (3) docker pull 从镜像仓库中拉取或者更新指定镜像。 l 语法: docker pull [OPTIONS] NAME[:TAG|@DIGEST] l OPTIONS说明: Ø -a :拉取所有 tagged 镜像 Ø --disable-content-trust :忽略镜像的校验,默认开启 l 案例: 从Docker Hub下载java最新版镜像。 docker pull java 从Docker Hub下载REPOSITORY为java的所有镜像。 docker pull -a java (4) docker system df 查看镜像/容器/数据卷所占的空间。 (5) docker rmi 删除本地一个或多个镜像。 l 语法: docker rmi [OPTIONS] IMAGE [IMAGE...] l OPTIONS说明: -f :强制删除; --no-prune :不移除该镜像的过程镜像,默认移除; Ø 删除单个 docker rmi -f 镜像ID Ø 删除多个 docker rmi -f 镜像名1:TAG 镜像名2:TAG Ø 删除全部 docker rmi -f $(docker images -qa) 步骤4 容器命令 有镜像才能创建容器, 这是根本前提。 docker run :创建一个新的容器并运行一个命令 l 语法: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] l OPTIONS说明: Ø -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项; Ø -d: 后台运行容器,并返回容器ID,也即启动守护式容器(后台运行); Ø -i: 以交互模式运行容器,通常与 -t 同时使用;也即启动交互式容器(前台有伪终端,等待交互); Ø -P: 随机端口映射,容器内部端口随机映射到主机的端口 Ø -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 Ø -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; Ø --name="nginx-lb": 为容器指定一个名称; Ø --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致; Ø --dns-search : 指定容器DNS搜索域名,默认和宿主一致; Ø -h "mars": 指定容器的hostname; Ø -e username="ritchie": 设置环境变量; Ø --env-file=[]: 从指定文件读入环境变量; Ø --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行; Ø -m :设置容器使用内存最大值; Ø --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型; Ø --link=[]: 添加链接到另一个容器; Ø --expose=[]: 开放一个端口或一组端口; Ø --volume , -v: 绑定一个卷。 (1) 启动交互式容器(前台命令行) 使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。 docker run -it centos /bin/bash l 参数说明: Ø -i: 交互式操作。 Ø -t: 终端。 Ø centos : centos 镜像。 Ø /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。 要退出终端,直接输入exit。 l 案例: 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。 docker run --name mynginx -d nginx:latest 使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。 docker run -P -d nginx:latest 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。 docker run -p 80:80 -v /data:/data -d nginx:latest 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。 docker run -it nginx:latest /bin/bash (2) 列出当前所有正在运行的容器 docker ps [OPTIONS] l OPTIONS说明: Ø -a :显示所有的容器,包括未运行的。 Ø -f :根据条件过滤显示的内容。 Ø --format :指定返回值的模板文件。 Ø -l :显示最近创建的容器。 Ø -n :列出最近创建的n个容器。 Ø --no-trunc :不截断输出。 Ø -q :静默模式,只显示容器编号。 Ø -s :显示总的文件大小。 列出所有在运行的容器信息。 docker ps 输出详情介绍: Ø CONTAINER ID: 容器 ID。 Ø IMAGE: 使用的镜像。 Ø COMMAND: 启动容器时运行的命令。 Ø CREATED: 容器的创建时间。 Ø STATUS: 容器状态。 状态有7种: created(已创建) restarting(重启中) running(运行中) removing(迁移中) paused(暂停) exited(停止) dead(死亡) Ø PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。 Ø NAMES: 自动分配的容器名称。 (3) 退出容器 两种退出方式: exit:run进去容器,exit退出,容器停止。 ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止 (4) 启动已停止运行的容器 docker start 容器ID或者容器名 (5) 重启容器 docker restart 容器ID或者容器名 (6) 停止容器 docker stop 容器ID或者容器名 (7) 强制停止容器 docker kill 容器ID或容器名 (8) 删除已停止的容器 Ø docker rm 容器ID Ø 一次性删除多个容器实例 Ø docker rm -f $(docker ps -a -q) Ø docker ps -a -q | xargs docker rm (9) 启动守护式容器(后台服务器) 在大部分的场景下,我们希望docker的服务是在后台运行的, 我们可以通过-d指定容器的后台运行模式。 docker run -d 容器名 使用镜像centos:latest以后台模式启动一个容器。 docker run -d centos docker ps -a 进行查看, 会发现容器已经退出。 很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程,容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。 这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如service nginx start,但是这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀因为他觉得他没事可做了。 所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行,常见就是命令行模式,表示我还有交互操作,别中断。 (10) 进入正在运行的容器并以命令行交互 语法: docker exec [OPTIONS] CONTAINER COMMAND [ARG...] OPTIONS说明: Ø -d :分离模式: 在后台运行 Ø -i :即使没有附加也保持STDIN 打开 Ø -t
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > IT计算机/网络 > 云计算/并行计算


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号