Docker的常用命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: Docker的常用命令

官方文档传送门

帮助命令

docker version             #显示docker的版本信息
docker info                 #显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help         #帮助命令

镜像命令

docker images

查看所有本地的主机上的镜像
常用可选项

-a      --all      #列出所有镜像
-q      --quiet    #只显示镜像的id

测试

ubuntu@VM-4-3-ubuntu:~$ sudo docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
mysql         5.7       262701d58edd   5 days ago      495MB
hello-world   latest    feb5d9fea6a5   12 months ago   13.3kB

返回值解释

REPOSITORY        #镜像仓库源
TAG                #镜像标签
IMAGE ID         #镜像id
CREATED            #镜像创建时间
SIZE            #镜像的大小

docker search

搜索镜像
常用可选项

--filter=stars=3000      #搜索出来的镜像就是stars大于3000的

测试

#不加限制的
ubuntu@VM-4-3-ubuntu:~$ sudo docker search mysql
NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relation…   13234     [OK]       
mariadb                         MariaDB Server is a high performing open sou…   5062      [OK]       
phpmyadmin                      phpMyAdmin - A web interface for MySQL and M…   640       [OK]   
...

#加过滤的
ubuntu@VM-4-3-ubuntu:~$ sudo docker search mysql --filter=stars=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   13234     [OK]       
mariadb   MariaDB Server is a high performing open sou…   5062      [OK]   

docker pull

下载镜像
docker pull 镜像名[:tag]
测试

#下载镜像 docker pull mysql:5.7
ubuntu@VM-4-3-ubuntu:~$ docker pull mysql
Using default tag: latest        #如果不写tag,默认就是latest
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=mysql&tag=latest": dial unix /var/run/docker.sock: connect: permission denied
ubuntu@VM-4-3-ubuntu:~$ 
ubuntu@VM-4-3-ubuntu:~$ sudo docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
5ed150ed0abe: Pull complete         #分层下载,docker images的核心,联合文件系统
0fede58e17ac: Pull complete 
994a6ddd6efe: Pull complete 
028bda79779b: Pull complete 
426fbe9e56a2: Pull complete 
1a00e58dd193: Pull complete 
4a4f64494005: Pull complete 
fba8ab3534a7: Pull complete 
2695938edf88: Pull complete 
3754e2587bed: Pull complete 
1b9f154543e7: Pull complete 
Digest: sha256:147572c972192417add6f1cf65ea33edfd44086e461a3381601b53e1662f5d15        #签名
Status: Downloaded newer image for mysql:latest    
docker.io/library/mysql:latest        #真实地址

#等价于
docker pull mysql
docker pull docker.io/library/mysql:latest

#指定版本下载
ubuntu@VM-4-3-ubuntu:~$ sudo docker pull mysql:5.7
5.7: Pulling from library/mysql
0056409b8e89: Pull complete 
219bd535343d: Pull complete 
f220ee65eb90: Pull complete 
7bbb395b2290: Pull complete 
645e487e5f0a: Pull complete 
a9fa38d2e1fb: Pull complete 
e1d9f4f7e8b4: Pull complete 
e03fcfe5d90e: Pull complete 
74c4d4272e30: Pull complete 
e3a8ad6eeebe: Pull complete 
919524a8718b: Pull complete 
Digest: sha256:94176d0ad4ed85767fc0d74b8071387109a0390e7c1afd39788269c96d2dad74
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

#查看镜像
ubuntu@VM-4-3-ubuntu:~$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
mysql        latest    40b83de8fb1a   4 days ago   535MB
mysql        5.7       262701d58edd   5 days ago   495MB

docker rmi

删除镜像

docker rmi -f 镜像id                            #删除指定镜像
docker rmi -f 镜像id 镜像id 镜像id 镜像id         #删除指定多个镜像 
docker rmi -f $(sudo docker images -aq)             #删除全部的镜像

容器命令

说明:有了镜像才可以创建容器
本文是在ubuntu中下载一个centos测试

docker pull centos

docker run

docker run [可选参数] image 新建容器并启动
常用参数

--name="Name"            #容器名字 Tomcat01 Tomcat02,用来区分容器
-d                       #后台方式运行
-it                       #使用交互式方式,进入容器查看内容
-p                       #指定容器的端口 比如:-p 8080:8080
    -p ip:主机端口:容器端口
    -p 主机端口:容器端口(常用)
    -p 容器端口
    容器端口    
-P                       #(大写p)随机指定端口

测试 启动并进入容器

ubuntu@VM-4-3-ubuntu:~$ sudo docker run -it centos /bin/bash
[root@9d4097285a37 /]# ls #查看容器内的centos 基础版本,很多命令都是不完善的
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
#从容器中退回主机
[root@9d4097285a37 /]# exit
exit

docker ps

列出所有的运行的容器
常用参数

# docker ps 命令
空参数        #列出当前正在运行的容器
-a           #列出当前正在运行的容器+历史运行过的容器
-n=?       #显示最近创建的?个容器
-q           #只是显示容器的编号

测试

ubuntu@VM-4-3-ubuntu:~$ sudo docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
ubuntu@VM-4-3-ubuntu:~$ sudo docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                     PORTS     NAMES
9d4097285a37   centos         "/bin/bash"   8 minutes ago   Exited (0) 4 minutes ago             goofy_blackwell
2675b9e8aead   feb5d9fea6a5   "/hello"      7 hours ago     Exited (0) 7 hours ago               infallible_borg

退出容器

exit        #容器停止并退出
Ctrl +p +Q   #容器不停止退出

删除容器

docker rm 容器id                    #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f
docker rm -f $(docker ps -aq)        #删除所有的容器
docker ps -a -q|xargs docker rm        #删除所有容器

启动和停止容器的操作

docker start 容器id        #启动容器
docker restart 容器id        #重启容器
docker stop 容器id        #停止当前正在运行的容器
docker kill 容器id        #强制停止当前容器

常用其他命令

查看日志命令

docker logs -f -t --tail 容器id
#显示日志
-tf                    #显示日志
--tail number         #要显示日志条数

查看容器中进程

docker top 容器id

获取容器/镜像的元数据

docker inspect 容器id

进入当前正在运行的容器

docker exec            #进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach        #进入容器正在执行的终端,不会启动新的进程

docker exec -it 容器id /bin/bash      #命令行进入

docker attach 容器id

从容器中拷贝文件到主机上

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

#拷贝是一个手动过程,可采用-v 卷的技术,实现实时同步
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
14天前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
258 124
|
3月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
962 75
|
4月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p <宿主机端口>:<容器端口>`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
|
3月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
434 0
|
5月前
|
网络协议 Ubuntu Docker
Docker Compose--命令说明
Docker Compose--命令说明
950 30
|
5月前
|
Ubuntu Linux 开发者
常用的Docker命令:docker_cmd_sheet
以上就是一些常用的Docker命令,希望能帮助你更好地驾驭这个强大的工具。记住,Docker就像是一个魔法咒语,只有真正理解和熟练使用,才能发挥出它的最大魔力。
139 22
|
5月前
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
185 16
|
5月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
326 5
|
5月前
|
关系型数据库 MySQL Docker
|
6月前
|
NoSQL 应用服务中间件 Redis
Docker 常用命令整理
Docker 常用命令整理
164 1

热门文章

最新文章