栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Docker 基本操作

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

Docker 基本操作

1Docker镜像

Docker运行容器前需要本地存在对应的镜像,如果本地不存,Docker会从镜像仓库下载。

Docker 获取镜像 Docker Hub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。 我们也可以使用 docker search 命令来搜索镜像。
docker search tomcat
获取镜像 从 Docker 镜像仓库获取镜像的命令是 docker pull 其命令格式为:
docker pull [选项] [Docker Registey 地址[:端口号]/] 仓库名[:标签]
        具体的选项可以通过 docker pull --help 命令看到,这里我们说一下镜像名称的格式。 - Docker 镜像仓库地址: 地址的格式一般是 < 域名 /IP>[: 端口号 ] 。默认地址是 Docker Hub 。 - 仓库名:这里的仓库名是两段式名称, 即 < 用户名 >/< 软件名 > 。对于 Docker Hub ,如果不给出用户名,则默认为 library , 也就是官方镜像。
Docker 列出镜像

列出已经下载下来的镜像,使用 docker image ls 命令

docker images // docker image ls
列表包含了 仓库名、标签、镜像 ID 、创建时间 以及 所占用的空间 。 其中仓库名、标签在之前的基础概念已经介绍 过了。 镜像 ID 则是镜像的唯一标识 ,一个镜像可以对应多个标签。因此,如果拥有相同的 ID ,因为它们对应的是同 一个镜像。
镜像体积 如果仔细观察,会注意到,这里标识的所占用空间和在 DockerHub 上看到的镜像大小不同。这是因为DockerHub 中显示的体积是压缩后的体积。在镜像下载和上传过程中镜像是保持着压缩状态的,因此 DockerHub所显示的大小是网络传输中更关心的流量大小。而 dockerimagels 显示的是镜像下载到本地后,展开的大小,准确说,是展开后的各层所占空间的总和,因为镜像到本地后,查看空间的时候,更关心的是本地磁盘空间占用的大小。另外一个需要注意的问题是,dockerimagels 列表中的镜像体积总和并非是所有镜像实际硬盘消耗。由于Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于Docker 使用 UnionFS ,相同的层只需要保存一份即可,因此实际镜像硬盘占 用空间很可能要比这个列表镜像大小的总和要小的多。

虚悬镜像 镜像列表中,还可以看到一个特殊的镜像,这个镜像既没有仓库名,也没有标签,均为 这个镜像原本是有镜像名和标签的,原来为 tomcat:8.0 ,随着官方镜像维护,发布了新版本后,重新 docker pull tomcat:8.0 时, tomcat:8.0 这个镜像名被转移到了新下载的镜像身上,而旧的镜像上的这个名称则被取消, 从而成为了 。除了 docker pull 可能导致这种情况, docker build 也同样可以导致这种现象。由于新旧镜像同 名,旧镜像名称被取消,从而出现仓库名、标签均为 的镜像。这类无标签镜像也被称为 虚悬镜像(dangling image) 。 一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除:
docker image prune
Docker 删除本地镜像
docker image rm [选项] <镜像1> [<镜像2>.....]
用 ID 、镜像名、摘要删除镜像 其中, < 镜像 > 可以是 镜像短 ID 、镜像长 ID 、镜像名 或者 镜像摘要。 如果要删除本地的镜像,可以使用 docker image rmi / rm 命令
docker image rmi 镜像ID //常用
要删除镜像必须确认此镜像⽬前没有被任何容器使⽤ Docker其它辅助命令 查看本地镜像的 IMAGE ID
docker images -q
查看⼀个镜像的制作历程
docker history 镜像名称
Docker保存镜像 备份本地仓库的镜像

1 ⽤ save ⼦命令将本地仓库的镜像保存当前⽬录下
docker save -o tomcat.g.tar 镜像名称
2 将本地目录下的镜像备份文件导⼊到本地 Docker 仓库
# ⽅式⼀(不输出详细信息): 
[root@localhost ~]# docker load -i tomcat.g.tar
# ⽅式⼆(输出详细信息): 
[root@localhost ~]# docker load < tomcat.g.tar

Docker 容器 容器是 Docker 核心概念
简单的说,容器是独立运行的一个或一组应用,以及它们的运行环境。 对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和运行在上面的 应用。
1 查看容器状态
docker ps //查看运行的容器 
docker ps –a //查看所有的容器(包含运行和退出) 
docker container ls
docker container ls–a
2 Docker 启动容器 启动容器有二种方式,一种是基于镜像新建一个容器并启动,一种是将在终止状态( stopped )的容器重新启动 docker run 参数 镜像名称 :tag 执⾏的命令 常⽤参数 :
-i 保持和 docker 容器内的交互,启动容器时,运⾏的命令结束后,容器依然存活,没有退出(默认是会退出,即停⽌的) -t 为容器的标准输⼊虚拟⼀个 tty -d 后台运⾏容器 --rm 容器在启动后,执⾏完成命令或程序后就销毁 --name 给容器起⼀个⾃定义名称 -p 宿主机:内部端口
docker run --rm -d --name tomcat1 -p 8080:8080 tomcat
3 查看正在运行的容器
docker ps
CONTAINER ID 容器 ID IMAGE 容器依赖的镜像 COMMAND 启动容器时执⾏的命令或程序 CREATED 容器启动时到 现在的相隔时间 STATUS 容器状态 PORTS 宿主机到容器的端⼝映射 注意 : 当运⾏⼀个容器的时候,没有⽤参数 -- name 去指定容器名时, Docker 会从⾃⼰的名称库中随机给这个容器起⼀个名字
4 查看所有容器
docker ps -a
5 停止容器
docker stop 9be696a0c283 //停止正在运行容器(或Ctrl+c) 
docker container stop tomcat1//停止正运行容器(ID或Names)
6 启动已终止容器
#通过docker ps 找到容器id
docker start 容器名/容器 ID
7 重启已关闭容器
docker restart 9be696a0c283//启动容器(根据ID或NAMES)
8 关闭和删除容器
docker rm 容器ID
9 Docker 守护态运行 更多的时候,需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添 加 -d 参数来实现 ,如果不使用 -d 参数运行容器 : 将会在当前宿主机运行。 如果使用了 -d 参数运行容器。此时容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面 ( 输出结果可 以用 docker logs 查看 ) 。
查看控制台结果: 
docker logs tomcat1//(ID或Names)
10 Docker 进入容器 某些时候需要进入容器进行操作,使用 docker exec 命令
-i -t 参数 docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。 只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。 当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。
docker exec -it 容器ID(Names)bash
11 在宿主机和容器之间交换⽂件 在宿主机和容器之间相互 COPY ⽂件 cp 的⽤法如下
docker cp [OPTIONS] CONTAINER:PATH LOCALPATH //容器中 复制到 宿主机 
docker cp [OPTIONS] LOCALPATH|- CONTAINER:PATH //宿主机 复制到 容器中 
#宿主机复制一个图片到容器中:将png图片复制到了容器指定目录下 
docker cp guoweixin.png tomcat2:/usr/local/tomcat/webapps/ROOT 
#将容器内的index.jsp 复制出来,修改再复制回去
docker cp tomcat2:/usr/local/tomcat/webapps/ROOT/index.jsp /root

Docker 查看日志 Docker 查看日志
docker logs 容器名称/ID
docker logs -f -t --since="2018-12-1" --tail=10 qfjy_exam

--since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。 -f : 查看实时日志 -t : 查看日志产生 的日期 -tail=10 : 查看最后的 10 条日志 qfjy_exam : 容器名称 Docker 数据卷 数据卷 : 是一个可供一个或多个容器使用的特殊目录 数据卷应用
#1 创建数据卷
 docker volume create 数据卷名称 
# 创建数据卷之后,默认会存放到目录: /var/lib/docker/volume/数据卷名称/_data目录下
#2 查看数据卷 
docker volume inspect 数据卷名称 
#3 查看全部数据卷信息
 docker volume ls
#4 删除数据卷 
docker volume rm 数据卷名称
#5 应用数据卷 
#5.1 当你映射数据卷时,如果数据卷不存在,Docker会帮你自动创建 docker run -v 数据卷名称:容器内路径 镜像ID 
#5.2 直接指定一个路径作为数据卷的存储位置 docker run -v 路径:容器内部的路径 镜像ID

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024720.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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