Docker基本命令

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: Docker基本命令

启动docker

 service docker start # 启动docker
 service docker stop # 关闭docker
 sudo service docker restart # 重新启动docker

常用命令

docker version # 显示版本
docker info # 显示镜像详细信息,更加详细
docker 命令 --help # 万能命令
systemctl start docker # 启动docker

镜像命令

https://docs.docker.com/engine/reference/commandline/build/

官方文档地址

#docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   2 months ago   13.3kB
# 解释
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的ID
CREATED 镜像的创建时间
SIZE #镜像的大小
# 可选项
# docker images --help
  -a, --all             # 列出全部的镜像
  
  -q, --quiet          # 只列出镜像的ID

docker search 搜索镜像

docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10905     [OK]       
mariadb                           MariaDB Server is a high performing open sou…   4117      [OK]       
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   810                  [OK]
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   88                   
mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   85                   
centurylink/mysql                 Image containing mysql. Optimized to be link…   59                   [OK]
bitnami/mysql                     Bitnami MySQL Docker Image                      52                   [OK]
databack/mysql-backup             Back up mysql databases to... anywhere!         43                   
deitch/mysql-backup               REPLACED! Please use http://hub.docker.com/r…   41                   [OK]
prom/mysqld-exporter                                                              39                   [OK]
tutum/mysql                       Base docker image to run a MySQL database se…   35                   
schickling/mysql-backup-s3        Backup MySQL to S3 (supports periodic backup…   29                   [OK]
# 可选项
-f, --filter filter  # 
      --format string   
      --limit int      
      --no-trunc       
# 通过收藏过滤
--filter=STARS=3000 # 搜索出来的镜像的是STRARS大于3000的
docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   10910     [OK]       
mariadb   MariaDB Server is a high performing open sou…   4119      [OK] 

下载镜像

root@root ~]# docker pull --help

Usage:  docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Pull an image or a repository from a registry

Options:
  -a, --all-tags                Download all tagged images in the repository
      --disable-content-trust   Skip image verification (default true)
      --platform string         Set platform if server is multi-platform capable
  -q, --quiet  
  #下载 docker pull 名称 [:TAG]
  # docker pull mysql # 默认下载最新的
  [root@root ~]# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
69692152171a: Pull complete # 分层下载,docker image的核心,联合文件系统
1651b0be3df3: Pull complete 
951da7386bc8: Pull complete 
0f86c95aa242: Pull complete 
37ba2d8bd4fe: Pull complete 
6d278bb05e94: Pull complete 
497efbd93a3e: Pull complete 
f7fddf10c2c2: Pull complete 
16415d159dfb: Pull complete 
0e530ffc6b73: Pull complete 
b0a4a1a77178: Pull complete 
cd90f92aa9ef: Pull complete 
Digest: sha256:d50098d7fcb25b1fcb24e2d3247cae3fc55815d64fec640dc395840f8fa80969 # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest # 真实地址
# 等价于
docker pull mysql == docker pull docker.io/library/mysql:latest
# 下载其他版本,指定版本
[root@root ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
69692152171a: Already exists # 前面一样不需要下载
1651b0be3df3: Already exists 
951da7386bc8: Already exists 
0f86c95aa242: Already exists 
37ba2d8bd4fe: Already exists 
6d278bb05e94: Already exists 
497efbd93a3e: Already exists 
a023ae82eef5: Pull complete # 下载前面不同的
e76c35f20ee7: Pull complete 
e887524d2ef9: Pull complete 
ccb65627e1c3: Pull complete 
Digest: sha256:a682e3c78fc5bd941e9db080b4796c75f69a28a8cad65677c23f7a9f18ba21fa
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7

删除镜像

docker images # 查看镜像
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
mysql         5.7       2c9028880e58   11 days ago    447MB
mysql         latest    c0cdc95609f1   11 days ago    556MB
hello-world   latest    d1165f221234   2 months ago   13.3kB
[root@root ~]# docker rmi -f 2c9028880e58 #  根据ID删除镜像--指定删除
[root@root ~]# docker rmi -f 2c9028880e58 镜像ID 镜像ID #  根据ID删除多个镜像--指定删除
Untagged: mysql:5.7
Untagged: mysql@sha256:a682e3c78fc5bd941e9db080b4796c75f69a28a8cad65677c23f7a9f18ba21fa
Deleted: sha256:2c9028880e5814e8923c278d7e2059f9066d56608a21cd3f83a01e3337bacd68
Deleted: sha256:c49c5c776f1bc87cdfff451ef39ce16a1ef45829e10203f4d9a153a6889ec15e
Deleted: sha256:8345316eca77700e62470611446529113579712a787d356e5c8656a41c244aee
Deleted: sha256:8ae51b87111404bd3e3bde4115ea2fe3fd2bb2cf67158460423c361a24df156b
Deleted: sha256:9d5afda6f6dcf8dd59aef5c02099f1d3b3b0c9ae4f2bb7a61627613e8cdfe562


docker rmi -f $(docker images -aq) # 递归删除镜像(删除全部容器)
Untagged: mysql:latest
Untagged: mysql@sha256:d50098d7fcb25b1fcb24e2d3247cae3fc55815d64fec640dc395840f8fa80969
Deleted: sha256:c0cdc95609f1fc1daf2c7cae05ebd6adcf7b5c614b4f424949554a24012e3c09
Deleted: sha256:137bebc5ea278e61127e13cc7312fd83874cd19e392ee87252b532f0162fbd56
Deleted: sha256:7ed0de2ad4e43c97f58fa9e81fba73700167ef9f8a9970685059e0109749a56b
Deleted: sha256:9375660fbff871cd29c86b8643be60e376bfc96e99a3d7e8f93d74cd61500705
Deleted: sha256:d8a47065d005ac34d81017677330ce096eb5562eeb971e2db12b0e200fdb1cb6
Deleted: sha256:ca13c8ad9df5d824d5a259a927eaa6c04a60f022bc2abe8fc7866cf4b2b366f4
Deleted: sha256:7af1865d5c19316c3dc0829a2ee2b3a744ae756f7fec9c213d3afc5f1f6ed306
Deleted: sha256:f205c8f3c8aaa6376442b34c0c2062738461d37e0aa16ba021cd7e09c67213c2
Deleted: sha256:d690e8a8242cf13cbe98c5b2faffdd0fc7e6c4c13425b5da31de991aa1f89a76
Deleted: sha256:24efeee958e9f3d859fe15540e9296d5aaa6d3eb3b5f5494a2e8370608a4cfaa
Deleted: sha256:654f2ffede3bb536fd62d04c9c7b7826e890828bec92182634e38684959b2498
Deleted: sha256:de478a06eaa676052e665faa0b07d86a007f4b87cf82eb46a258742dc2d32260
Deleted: sha256:02c055ef67f5904019f43a41ea5f099996d8e7633749b6e606c400526b2c4b33
Untagged: hello-world:latest
Untagged: hello-world@sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726

容器命令

有了镜像才可以传教容器

准备工作,先下载一个centos镜像来测试学习

docker pull centos

新建容器并启动

docker run [可选参数] image

# 参数说明
--name="Name" 容器名称 tomcat01,tomcat02,用来区分容器
-d  后台方式运行
-i,-t 使用交互方式运行
-p 指定容器端口 -p 8080:8080
 -p ip:z主机端口:容器端口
 -p 主机端口:容器端口(常用)
 -p 容器端口
 容器端口
-P 随机指定端口
#测试,启动并进入容器
docker run -it centos /bin/bash 
[root@395155bb34ba /]# ls # 服务器里面的服务器--容器内的服务器
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
eixt # 退出到主机

列出所有运行容器

# docker ps 命令
   # 列出当前运行的容器
-a # 列出当前运行的容器+历史运行的容器
-n=? #显示最近创建的容器
-q # 只显示容器的编号
[root@root ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@root ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS                     PORTS     NAMES
395155bb34ba   centos         "/bin/bash"   14 minutes ago   Exited (0) 8 minutes ago             suspicious_northcutt
6dbb55f64333   d1165f221234   "/hello"      16 hours ago     Exited (0) 16 hours ago              amazing_lichterman

[root@root ~]# docker ps -a -n=1 # 限制个数
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS                      PORTS     NAMES
395155bb34ba   centos    "/bin/bash"   19 minutes ago   Exited (0) 13 minutes ago             suspicious_northcutt

[root@root ~]# docker ps -a -q
395155bb34ba
6dbb55f64333

退出容器

exit # 直接容器停止并退出
Ctrl +P  + Q #容器不停止退出

删除容器

docker rm 容器Id # 删除指定的容器 不能删除正在运行的容器,如果要强制删除rm -f
docker rm -f $(docker ps -aq) # 删除所有的容器
docker ps -a -q|xargs docker rm # 删除所有的容器
[root@root ~]# docker ps -a -q 等价于  docker ps -aq
7c28ac5bc840
395155bb34ba
6dbb55f64333
[root@root ~]# docker ps -aq
7c28ac5bc840
395155bb34ba
6dbb55f64333

启动容器和停止

docker start 容器id # 启动容器
docker restart 容器id # 查询启动容器
docker stop 容器id # 停止当前正在容器
docker kill 容器id # 强制停止当前容器

常用其他命令

后台启动

# 命令 docker run -d 镜像名
[root@root ~]# docker run -d centos
6025f5cf760514eb5b1890176261cc1bd4df601d10423c1c2d28d80f6601fbe3
[root@root ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# 问题docker ps ,发现centos停止了

# 常见的坑:docker 容器使用后台运行,就必须有一个前台进程,docker发现没有就会自动停止
# nginx ,容器启动后,发现直接没有提供服务,就会立即停止,就是没有程序了

查看日志

 docker logs - f -t -taill n 容器id # 容器,没有日志,n代表显示日志的条数
 -tf # 显示全部的
 --tail number # 显示日志的条数

查看进程信息

# 命令 docker top 容器id
[root@root /]# docker top a7d2a39a090d
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                187190              187170              0                   13:33               pts/0               00:00:00            /bin/bash

查看元数据


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

热门文章

最新文章