【云原生 | 从零开始学Docker】二、Docker的常用指令学习以及使用

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: 我们应该如何去学习docker的命令,这是一个老生常谈的话题了,作为一个知识类博主,我想告诉各位的是学习的方法真的很重要,学习一个东西,不只是死记硬背,学习命令也一样,所以接下来这个命令是最重要的,没有之一,要学会如何去使用,以后会帮上你的忙。

一、如何去学习命令


我们应该如何去学习docker的命令,这是一个老生常谈的话题了,作为一个知识类博主,我想告诉各位的是学习的方法真的很重要,学习一个东西,不只是死记硬背,学习命令也一样,所以接下来这个命令是最重要的,没有之一,要学会如何去使用,以后会帮上你的忙。


接下来的常用命令,大家都跟着去敲一边,很快你就会记住怎么用了~~


第一个命令可能学过linux的各位也都知道,就是帮助命令。


docker  命令 --help


linux内有帮助命令,docker同样也有,如果你有不懂得命令可以直接用这个去查,比如


docker run --help


屏幕上就会显示run的参数一类的信息,当然,如果你想看更详细的,可以去docker官网查询你想查询的命令,这也是一种方法,各位在需要使用命令的时候建议先去查询一下看一看。


二、镜像常用命令


提到这个,就是我们熟悉的增删改查了哈哈哈,接下来我一一介绍


2.1查看本地所有镜像


docker images     #查看本地所有镜像


我们直接在shell输入这个命令就可以查看本地有多少镜像了


32.png


REPOSITORY:表示镜像的仓库源


TAG:镜像的标签


IMAGE ID:镜像ID


CREATED:镜像创建时间


SIZE:镜像大小


常用的选项有


-a #列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
-q #只显示镜像ID


2.2 搜索镜像


docker search 要搜索的镜像名字 #搜索镜像
常用选项
-f 基于给定条件过滤输出


用在搜索自己想下载的镜像 比如 docker search mysql


33.png


选项使用示范


docker search -f=STARS=3000 mysql


34.png


过滤收藏在3000及以上的镜像。


2.3下载镜像


docker pull 镜像名字 #下载 默认最新
docker pull 镜像名字[:TAG] #下载特定版本
docker pull mysql:5.7 下载5.7版本的mysql。


35.png


2.4 删除镜像


docker rmi 镜像id #可以通过id和名字删除 也可以删除多个镜像 空格隔开
docker rmi -f $(docker images -aq) #全部删除 相当于rm-rf


2.5 查看系统信息


docker version   #显示版本信息
docker info  #显示docker系统信息 包括容器镜像数量


三、容器常用命令


有了镜像才能创建容器,这里下载一个centos


docker pull centos


3.1 新建容器启动


docker run [参数] image #创建 运行
下面的选项一部分我们会在后面讲到,各位有个了解眼熟就好,现在了解-d i t就好
常用选项
-d: 后台运行容器,并返回容器ID
-i: 以交互模式运行容器,通常与 -t 同时使用
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
--name="自定义名字": 为容器指定一个名称
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致
-h "mars": 指定容器的hostname
-e username="ritchie": 设置环境变量
--net="bridge": 指定容器的网络连接类型,支持bridge/host/none/container四种类型
--link=[]: 添加链接到另一个容器
--expose=[]: 开放一个端口或一组端口
--volume , -v: 绑定一个卷
docker run -it centos /bin/bash 我们交互方式进入centos,使用bash作为shell。
启动并进入容器 此时内部和外部没有半毛钱关系


36.png


登录成功之后我们名字会变成这个镜像的id


3.2 查看运行的容器


我们输入exit退出刚才进入的centos。


然后使用我们的指令


docker ps #查看当前运行的容器
常用选项
-a 当前正在运行的容器+历史运行过的
-n=? 显示最近创建的容器,比如最近的一个 docker ps -a -n=1
-q 只显示id


37.png


第一个是正在运行的 第二个-a是所有的 第三个是所有镜像的id


3.3 退出容器


exit 直接退出结束
Ctrl+p+q 让容器在后台运行,不停止并且退出


3.4 删除容器


docker rm 容器id #正在运行的容器不可以删除
docker rm -f $(docker ps -aq) #全部容器删除


3.5 启动容器


docker start 容器id


3.6 重启容器


docker restart 容器id


3.8 停止容器


docker stop 容器id


3.9 重启强制杀死容器


docker kill 容器id


四、其他常用命令


4.1 直接后台启动


docker run -d 容器名或者id
此时我们用 docker run -d centos之后然后ps查看一下,我们会发现centos停止了,docker是容器使用后台运行,如果是后台运行必须有前台进程,如果你没有运行前台进程那么docker发现没有应用就自动停止了


4.2 查看日志


docker logs #查看日志
常用选项
-t 是加入时间戳
-f 跟随最新的日志打印
--tail 数字 显示最后多少条


4.3 查看容器进程信息


docker top 容器id


4.4 查看镜像元数据


docker inspect 容器id     #显示的信息有 主机配置 id 镜像从哪来 网络等信息


4.5 进入当前正在运行的容器


docker exec -it 容器id # shell路径 exec是在容器中打开新的终端,并且启动新的进程
docker attach 容器id # attach直接进入容器启动命令的终端,不会启动新的进程


4.6 容器内拷贝文件到主机


docker cp 容器id:容器内路径 主机路径


我们可以进入刚才的centos home目录里面创建一个文件,使用 touch 命令,然后Ctrl+q+p退出,再使用我们的 docker cp b1f0258395c2:/home/paopao.cpp /home 就可以把刚才在centos home目录里面创建的文件复制出来了


五、命令汇总


38.png


命令

Value
attach Attach to a running container

当前shell下attach连接指定运行镜像

build Build an image from a Dockerfile

通过Dockerfile定制镜像

commit Create a new image from a container’s changes

提交当前容器为新的镜像

cp Copy files/folders from a container to a HOSTDIR or to STDOUT

从容器中拷贝指定文件或者目录到宿主机中

createCreate a new container

创建一个新的容器,同run 但不启动容器

diff Inspect changes on a container’s filesystem

查看docker容器变化

events Get real time events from the server

从docker服务获取容器实时事件

exec Run a command in a running container

在已存在的容器上运行命令

export Export a container’s filesystem as a tar archive

导出容器的内容流作为一个tar归档文件(对应import)

history Show the history of an image

展示一个镜像形成历史

images List images

列出系统当前镜像

import Import the contents from a tarball to create a filesystem image

从tar包中的内容创建一个新的文件系统映像(对应export)

info Display system-wide information

显示系统相关信息

inspect Return low-level information on a container or image

查看容器详细信息

kill Kill a running container

kill指定docker容器

load Load an image from a tar archive or STDIN

从一个tar包中加载一个镜像(对应save)

login Register or log in to a Docker registry

注册或者登陆一个docker源服务器

logout Log out from a Docker registry

从当前Docker registry退出

logs Fetch the logs of a container

输出当前容器日志信息

pause Pause all processes within a container

暂停容器

port List port mappings or a specific mapping for the CONTAINER

查看映射端口对应的容器内部源端口

ps List containers

列出容器列表

pull Pull an image or a repository from a registry

从docker镜像源服务器拉取指定镜像或者库镜像

push Push an image or a repository to a registry

推送指定镜像或者库镜像至docker源服务器

rename Rename a container

重命名容器

restart Restart a running container

重启运行的容器

rm Remove one or more containers

移除一个或者多个容器

rmi Remove one or more images

移除一个或多个镜像(无容器使用该镜像才可以删除,否则需要删除相关容器才可以继续或者-f强制删除)

run Run a command in a new container

创建一个新的容器并运行一个命令

save Save an image(s) to a tar archive

保存一个镜像为一个tar包(对应load)

search Search the Docker Hub for images

在dockerhub中搜索镜像

start Start one or more stopped containers

启动容器

stats Display a live stream of container(s) resource usage statistics

统计容器使用资源

stop Stop a running container

停止容器

tag Tag an image into a repository

给源中镜像打标签

top Display the running processes of a container

查看容器中运行的进程信息

unpause Unpause all processes within a container

取消暂停容器

version Show the Docker version information

查看容器版本号

wait Block until a container stops, then print its exit code

截取容器停止时的退出状态值


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
96 2
|
1月前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
1月前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
1月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
1月前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
54 3
|
2月前
|
Kubernetes Cloud Native 开发者
探秘云原生计算:Kubernetes与Docker的协同进化
在这个快节奏的数字时代,云原生技术以其灵活性和可扩展性成为了开发者们的新宠。本文将带你深入了解Kubernetes和Docker如何共同塑造现代云计算的架构,以及它们如何帮助企业构建更加敏捷和高效的IT基础设施。
|
2月前
|
存储 Ubuntu Linux
学习docker
学习docker
40 1
|
2月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
332 3
|
2月前
|
运维 Kubernetes 开发者
Docker Swarm学习
【10月更文挑战第5天】
42 3
|
2月前
|
安全 Cloud Native Shell
云上攻防:云原生篇&Docker容器逃逸
本文介绍了Docker的基本概念及其对渗透测试的影响,重点讲解了容器逃逸的方法。Docker是一种轻量级的容器技术,与虚拟机相比,具有更高的便携性和资源利用率。然而,这也带来了安全风险,特别是容器逃逸问题。文章详细描述了三种常见的容器逃逸方法:不安全的配置、相关程序漏洞和内核漏洞,并提供了具体的检测和利用方法。此外,还介绍了几种特定的漏洞(如CVE-2019-5736和CVE-2020-15257)及其复现步骤,帮助读者更好地理解和应对这些安全威胁。
140 0
云上攻防:云原生篇&Docker容器逃逸