Docker基础命令

目录

目标

概述

官方文档

基础命令

镜像

搜索镜像

下载镜像

查看已安装的镜像

删除镜像

查看镜像详细信息

删除镜像

容器

查看所有容器

创建并启动容器

启动容器(容器已经存在)

修改容器名称

停止容器运行

删除容器

重启容器

查看容器详情

查看容器日志

查看容器实时输出

进入容器交互式终端


目标

  1. 了解镜像、容器、虚拟机之间的区别。
  2. 通过Docker官方文档学习并掌握Docker基础命令。

概述

Docker

官方定义

Docker overview

Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker's methodologies for shipping, testing, and deploying code, you can significantly reduce the delay between writing code and running it in production.

翻译

Docker 概述

Docker是一个用于开发发布运行应用程序的开放平台。Docker可让您将应用程序与基础架构分离,以便快速交付软件。借助Docker,您可以像管理应用程序一样管理基础架构。通过利用Docker 的发布测试部署代码方法,您可以显著减少编写代码和在生产中运行代码之间的延迟。

镜像(Image)

官方定义

An image is a read-only template with instructions for creating a Docker container.

翻译

镜像是一个只读模板,其中包含创建Docker容器的说明。

备注

镜像包含了应用程序、库、环境变量、配置文件等内容,它是静态不可变的。

容器(Container)

官方定义

A container is a runnable instance of an image.

翻译

容器是镜像的可运行实例。

镜像VS容器

大家可以站在Java的角度,将镜像和容器的区别与类和实例化对象的区别做类比:

  1. 镜像定义了容器的文件系统和配置,就像Java类定义了对象的属性和方法。
  2. 容器是镜像的运行实例,具有独立的生命周期。就像Java类的实例一样,也具备独立的生命周期。
  3. 一个镜像可以创建多个容器,一个类也可以实例化多个对象。

我们学习知识一定要学会类比和联想,举一反三才能事半功倍。

容器VS虚拟机

虚拟机容器
架构虚拥有自己的虚拟化硬件和操作系统,运行时资源开销较大。容器共享主机操作系统的内核,拥有独立的用户空间。因此启动容器资源开销小。
隔离性硬件级别的隔离,更高的安全性和兼容性,但也带来了较高的资源开销。进程级别的隔离,隔离程度不如虚拟机高,但足以满足大多数应用场景的需求。
启动速度

官方文档

指南 | Docker 文档icon-default.png?t=N7T8https://docs.docker.com/guides/

Docker 镜像仓库 | Docker Hubicon-default.png?t=N7T8https://hub.docker.com/

Docker 源代码仓库icon-default.png?t=N7T8https://github.com/docker


基础命令

镜像

搜索镜像

docker search 镜像名称

下载镜像

#默认下载最新版本
docker pull 镜像名称
#下载指定版本,建议先去Docker仓库去找版本号。Docker可能会提示不支持下载过时的版本。
docker pull 镜像名称:版本号

查看已安装的镜像

docker images
docker image ls

删除镜像

#删除版本为latest版本的镜像
docker rmi 镜像名称
#删除指定的镜像
docker rmi 镜像名称:版本号
docker rmi 镜像ID

查看镜像详细信息

docker inspect 镜像名称:版本号
docker inspect 镜像ID
#不加版本号表示默认查询latest版本的镜像信息
docker inspect 镜像

删除镜像

#不加版本号默认删除latest版本的镜像
docker rmi 镜像名称
docker rmi 镜像名称:版本号
docker rmi 镜像ID


容器

查看所有容器

#运行中的容器
docker ps
#所有容器
docker ps -a

创建并启动容器

#前台运行,不能关闭窗口,默认运行latest版本,如果没有这个版本就会去下载最新版本的镜像然后创建并启动一个容器
docker run 镜像名称
#前台运行,指定启动的版本号,如果没有这个版本就会去下载最新版本的镜像然后创建并启动一个容器。
docker run 镜像名称:版本号
docker run 镜像ID

#后台启动
docker run -d 镜像名称:版本号
docker run -d 镜像ID

#后台启动并映射端口
docker run -d -p 宿主机端口:容器端口 镜像名称:版本号
docker run -d -p 宿主机端口:容器端口 镜像ID

#后台启动并随机映射端口
docker run -d -p 容器端口 镜像名称:版本号
docker run -d -p 容器端口 镜像ID

#定义别名
docker run -d --name 容器名称 -p 容器端口 镜像名称:版本号 
docker run -d --name 容器名称 -p 容器端口 镜像ID

#随即分配宿主机的端口,注意:这里的-P是大写。
docker run -d -P 镜像名称:版本号
docker run -d -P 镜像ID

启动容器(容器已经存在)

docker start 容器ID
docker start 容器名称

修改容器名称

docker rename 当前容器名称 新容器名称

停止容器运行

docker stop 容器ID
#这里要注意是容器名称,不是镜像名称。
docker stop 容器名称

删除容器

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

重启容器

docker restart 容器ID
docker restart 容器名称

查看容器详情

docker inspect 容器ID
docker inspect 容器名称

查看容器日志

docker logs 容器ID
docker logs 容器名称

查看容器实时输出

注意:这里并非查看容器的实时日志,只能查看到Docker的标准输出和标准错误。比如用这个命令去查看tomcat容器,虽然不停地访问tomcat,但是这个命令下却没有打印任何信息。这是因为tomcat的控制台信息往往写入到了catalina.out文件中。

docker attach 容器ID
docker attach 容器名称

进入容器交互式终端

docker exec -it 容器名称 /bin/bash
docker exec -it 容器ID /bin/bash

案例(以修改Tomcat默认启动端口为例)

第一步:创建容器。

第二步:进入容器内部,查看目录结构。

第二步:打开并修改配置文件。有些镜像是非常精简,缺失了很多命令。大家可以将容器中的文件复制到宿主机,在宿主机上修改完成以后再复制回去。

注意:很多同学复制完以后会马上查看容器中的server.xml,实际上还没有刷新。只有再次重启容器后才可以看到文件内容被改变。

第三步:重启容器。注意,重启之后再进入

docker restart tomcat8

第四步:访问tomcat容器。

http://8.142.137.51:8099/

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值