Docker基础 常用命令、docker命令、镜像命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Docker 常用命令、docker命令、镜像命令、docker帮助文档地址,镜像基础命令详解,参数解释,帮助方法

Docker常用命令
容器帮助命令
docker --help        可以查看docker所有命令
docker 命令 --help 可以查看该命令的使用方式和参数

docker version #显示docker的版本信息
docker info #显示docker的系统信息,包括镜像和容器数量
docker 命令 --help #帮助命令
帮助文档的地址:
docker | Docker Documentation
https://docs.docker.com/engine/reference/commandline/docker/

官网帮助文档会有docker里的命令,点击相应命令就可以看到这个命令的使用方法和作用。 
image.png

 

 镜像命令
镜像是什么?镜像讲解:
镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

所有应用,直接打包docker镜像,就可以直接跑起来!

如何得到镜像:
1、从远程仓库下载

2、别人拷贝给你

3、自己制作一个镜像 DockerFile

docker镜像加载原理:UnionFS(联合文件系统)
我们下载的时候看到一层层的就是这个联合文件系统!

UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,他支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下,Union文件系统是docker镜像的基础。镜像可以通过分层来继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

特性:一次同时加载多个文件系统,但从外面看来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。

docker images        查看本地主机上所有的镜像

例:不会使用的docker命令,或者想知道该命令有什么参数的话,可以使用:

docker images --help

[root@localhost ~]# docker images --help

Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]

List images

Options:
-a, --all Show all images (default hides intermediate images)

  --digests         Show digests

-f, --filter filter Filter output based on conditions provided

  --format string   Pretty-print images using a Go template
  --no-trunc        Don't truncate output

-q, --quiet Only show image IDs

中文翻译:
列出图片

选项:
-a、 --全部显示所有镜像(默认隐藏中间镜像)
--摘要显示摘要
-f、 --根据提供的条件过滤输出
--使用Go模板格式化字符串打印镜像
--no trunc不截断输出
-q、 --仅显示镜像ID

其中docker images -a和-q参数比较常用,也可以-aq一起写:
-a 全部显示所有镜像
-q 仅显示镜像ID
[root@localhost ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 6 months ago 13.3kB

解释:

REPOSITORY 镜像的仓库源
TAG 镜像标签
IMAGE ID 镜像ID
CREATED 镜像的创建时间
SIZE 镜像的大小
docker search [镜像:标签]        搜索镜像
例:搜索docker hub库里的都有什么版本的mysql镜像
image.png

[root@localhost ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 12408 [OK]
mariadb MariaDB Server is a high performing open sou… 4780 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 918 [OK]

解释:

STARS 收藏,镜像的收藏人数,数字代表该镜像被收藏的数量
DESCRIPTION 镜像的描述,可以根据描述知道该镜像的功能

可选项:
--filter 过滤
使用方法;
--filter=STARS=3000 以收藏量为过滤条件,过滤出收藏量在三千以上的镜像

实操:
[root@localhost ~]# docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 12408 [OK]
mariadb MariaDB Server is a high performing open sou… 4780 [OK]

过滤后只剩下收藏量在三千以上的镜像了
docker pull [镜像:标签]        拉取镜像 
[root@localhost ~]# docker pull mysql
Using default tag: latest #如果不写tag,默认就是latest,最新版
latest: Pulling from library/mysql
f003217c5aae: Pull complete #分层下载,docker images 的核心,联合文件系统
65d94f01a09f: Pull complete
43d78aaa6078: Pull complete
a0f91ffbdf69: Pull complete
59ee9e07e12f: Pull complete
04d82978082c: Pull complete
70f46ebb971a: Pull complete
db6ea71d471d: Pull complete
c2920c795b25: Pull complete
26c3bdf75ff5: Pull complete
9ec1f1f78b0e: Pull complete
4607fa685ac6: Pull complete
Digest: sha256:1c75ba7716c6f73fc106dacedfdcf13f934ea8c161c8b3b3e4618bcd5fbcf195 #签名信息,防伪标志。
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #真实地址

解释:
Using default tag: latest 使用默认标签,最新的。默认下载最新版本的镜像
tag 标签
latest 最新的
docker.io/library/mysql:latest #真实地址,等价于docker pull mysql

注:
拉取镜像也可使用真实地址,这里
docker pull mysql == docker.io/library/mysql:latest
docker pull [镜像:标签]       指定版本拉取
指定版本下载一定要docker hub库里有的版本

[root@localhost ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
f003217c5aae: Already exists #已经存在
65d94f01a09f: Already exists
43d78aaa6078: Already exists
a0f91ffbdf69: Already exists
59ee9e07e12f: Already exists
04d82978082c: Already exists
70f46ebb971a: Already exists
ba61822c65c2: Pull complete
dec59acdf78a: Downloading [=====> ] 12.87MB/108.6MB
0a05235a6981: Download complete
c87d621d6916: Download complete

解释:

Already exists 已经存在

docker的核心,分层下载,将需要拉取的镜像分为多层,逐一下载。
若后续下载的其他版本的镜像有分层是一样的,就不会下载了,会显示该分层已经存在。共用这个分层,联合文件系统。
docker rmi [镜像:标签]或[镜像ID]        删除镜像
rmi的详解rm=removal (去除)   i=images (镜像)

可加参数: -f        强制删除镜像     docker rmi -f 镜像

[root@localhost ~]# docker rmi mysql
Untagged: mysql:latest
Untagged: mysql@sha256:1c75ba7716c6f73fc106dacedfdcf13f934ea8c161c8b3b3e4618bcd5fbcf195
Deleted: sha256:667ee8fb158e365450fc3f09712208fe44e9f1364a9b130fed95f3f4862f8a63
Deleted: sha256:daba3b5cd1b725f259d5d59049c7011f6a20f2e7e4782b873cadeedbc1a4f122
Deleted: sha256:407a68a397de3c8e4da2ccd388f27c795519414cc9319f674e7b9a492cd8514b
Deleted: sha256:6967db79cb8031d7e505dd82c91c6426e84c6ad2098d06c1c090485886bc1c63
Deleted: sha256:3dcc0f922d11309b2e4870d5f42c5005f086c9b9c1e128ed2b712b65fa79a5c9
Deleted: sha256:ae5d4ab2734d5c27069212b2690dc2c7ac4cd85ee5e122607cb175f7fe908914
Deleted: sha256:610784bcaae50e999566928bdec7a4e146fe075d9e487bde0a228c99013ff1d9
Deleted: sha256:ccebaff04ea21a9e2df07f9d5af5c47ccd141cd3590f4d45784b6075e7c17ded
Deleted: sha256:716203221cd982fc07b80efda0c53a759ecfd69b2d93d4e8adf5fa094351372e
Deleted: sha256:fbd4939b3eb58642a07003e076acc3d0d8140797f61139ce4d3645790d9c8b51
Deleted: sha256:88f8458b4b2030b229b9757bd4061bce58b65e831a0bba8fa71aa8b3f87db630
Deleted: sha256:f2f431ab3ddc1460d300cd86016cc03b7611b56f04bd88370da3d378b3d10aea
Deleted: sha256:c1065d45b8722a4385f2ee26116e1859e8083400ee00d2beff3fdd5225bfeee9

删除镜像时也是逐一删除镜像的分层
docker rmi -f $(docker images -aq)        删除所有镜像
[root@localhost ~]# docker rmi -f $(docker images -aq)
Untagged: hello-world:latest
Untagged: hello-world@sha256:bfea6278a0a267fad2634554f4f0c6f31981eea41c553fdf5a83e95a41d40c38
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412

解释

rmi # remove images 移除镜像
-f # 强制删除
$() #传递参数,将括号里的参数传递给该命令

docker images -aq #查看所有docker镜像的ID
-a #查看所有
-q #只看镜像ID

docker rmi -f $(docker images -aq) #将所有的镜像ID传递给删除镜像这个命令,这个命令会依次执行删除。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
25天前
|
安全 Docker 容器
|
25天前
|
网络安全 数据安全/隐私保护 Docker
|
11天前
|
缓存 Linux 网络安全
docker的镜像无法下载如何解决?
【10月更文挑战第31天】docker的镜像无法下载如何解决?
345 28
|
23天前
|
存储 监控 安全
|
25天前
|
缓存 监控 持续交付
|
8天前
|
存储 关系型数据库 Linux
【赵渝强老师】什么是Docker的镜像
Docker镜像是一个只读模板,包含应用程序及其运行所需的依赖环境。镜像采用分层文件系统,每次修改都会以读写层形式添加到原只读模板上。内核bootfs用于加载Linux内核,根镜像相当于操作系统,上方为应用层。镜像在物理存储上是一系列文件的集合,默认存储路径为“/var/lib/docker”。
|
13天前
|
存储 监控 Linux
docker构建镜像详解!!!
本文回顾了Docker的基本命令和管理技巧,包括容器和镜像的增删改查操作,容器的生命周期管理,以及如何通过端口映射和数据卷实现容器与宿主机之间的网络通信和数据持久化。文章还详细介绍了如何使用Docker部署一个简单的Web应用,并通过数据卷映射实现配置文件和日志的管理。最后,文章总结了如何制作自定义镜像,包括Nginx、Python3和CentOS镜像,以及如何制作私有云盘镜像。
83 2
|
15天前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
29 1
|
16天前
|
存储 Java 开发者
成功优化!Java 基础 Docker 镜像从 674MB 缩减到 58MB 的经验分享
本文分享了如何通过 jlink 和 jdeps 工具将 Java 基础 Docker 镜像从 674MB 优化至 58MB 的经验。首先介绍了选择合适的基础镜像的重要性,然后详细讲解了使用 jlink 构建自定义 JRE 镜像的方法,并通过 jdeps 自动化模块依赖分析,最终实现了镜像的大幅缩减。此外,文章还提供了实用的 .dockerignore 文件技巧和选择安全、兼容的基础镜像的建议,帮助开发者提升镜像优化的效果。
|
21天前
|
存储 缓存 Java
Java应用瘦身记:Docker镜像从674MB优化至58MB的实践指南
【10月更文挑战第22天】 在容器化时代,Docker镜像的大小直接影响到应用的部署速度和运行效率。一个轻量级的Docker镜像可以减少存储成本、加快启动时间,并提高资源利用率。本文将分享如何将一个Java基础Docker镜像从674MB缩减到58MB的实践经验。
34 1