Docker常用命令

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: Docker常用命令

       整理了一些 Docker 常用的基础命令。

搜索镜像

       使用 search 命令可以搜索存放在 docker hub 上的镜像。

      命令格式如下:

% docker search --help
Usage:  docker search [OPTIONS] TERM
Search the Docker Hub for images
Options:
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print search using a Go template
      --limit int       Max number of search results (default 25)
      --no-trunc        Don't truncate output

     例如:

% docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10712     [OK]       
mariadb                           MariaDB Server is a high performing open sou…   4029      [OK]       
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   785                  [OK]
percona                           Percona Server is a fork of the MySQL relati…   529       [OK]       
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   87                   
mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   80                   
centurylink/mysql                 Image containing mysql. Optimized to be link…   59                   [OK]
bitnami/mysql                     Bitnami MySQL Docker Image                      50                   [OK]


下载镜像

      使用 docker pull 可以从 docker registry( docker 注册中心)中下载镜像。

       命令格式如下:

% 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                   Suppress verbose output

       例如:

% docker pull nginx      
Using default tag: latest
latest: Pulling from library/nginx
a076a628af6f: Already exists 
0732ab25fa22: Pull complete 
d7f36f6fe38f: Pull complete 
f72584a26f32: Pull complete 
7125e4df9063: Pull complete 
Digest: sha256:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

列出镜像

       使用 docker images 可以查看已经下载到本地的镜像。

       命令如下:

% 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

      例如:

docker images -a
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    c8562eaf9d81   2 months ago   546MB
redis        latest    621ceef7494a   2 months ago   104MB
nginx        latest    f6d0b4767a6c   2 months ago   133MB

删除本地的镜像

      使用 docker rmi 命令即可删除本地镜像。

% docker rmi --help
Usage:  docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
Options:
  -f, --force      Force removal of the image
      --no-prune   Do not delete untagged parents

      例如:

% docker rmi nginx
Untagged: nginx:latest
Untagged: nginx@sha256:10b8cc432d56da8b61b070f4c7d2543a9ed17c2b23010b43af434fd40e2ca4aa
Deleted: sha256:f6d0b4767a6c466c178bf718f99bea0d3742b26679081e52dbf8e0c7c4c42d74
Deleted: sha256:4dfe71c4470c5920135f00af483556b09911b72547113512d36dc29bfc5f7445
Deleted: sha256:3c90a0917c79b758d74b7040f62d17a7680cd14077f734330b1994a2985283b8
Deleted: sha256:a1c538085c6f891424160d8db120ea093d4dda393e94cd4713e3fff3c82299b5
Deleted: sha256:a3ee2510dcf02c980d7aff635909612006fd1662084d6225e52e769b984abeb5
% docker images --all
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        latest    c8562eaf9d81   2 months ago   546MB
redis        latest    621ceef7494a   2 months ago   104MB

创建并运行容器

      使用 docker run 命令可以创建并运行一个容器。

% docker run --name nginx-test -p 8088:80 -d nginx
e9e3294f533923438a1bae551b2013d90916488f9e0cc0953282a593d06bf03b

--name:给容器命名

-p:进行端口映射 8088 为映射后的物理机的端口号,80 为 docker 容器的端口

-d:是后台容器

      用浏览器访问本地的 8088 端口,可以看到 nginx 的默认页。

查看容器

        可以通过 docker ps 查看运行中的容器。

      命令如下:

% docker ps --help
Usage:  docker ps [OPTIONS]
List containers
Options:
  -a, --all             Show all containers (default shows just running)
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print containers using a Go template
  -n, --last int        Show n last created containers (includes all states) (default -1)
  -l, --latest          Show the latest created container (includes all states)
      --no-trunc        Don't truncate output
  -q, --quiet           Only display container IDs
  -s, --size            Display total file sizes

     例如:

% docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS                  PORTS                  NAMES
e9e3294f5339   nginx     "/docker-entrypoint.…"   2 minutes ago   Up 2 minutes            0.0.0.0:8088->80/tcp   nginx-test

停止容器

      可以使用 docker stop 来停止运行中的容器。

       命令如下:

% docker stop --help        
Usage:  docker stop [OPTIONS] CONTAINER [CONTAINER...]
Stop one or more running containers
Options:
  -t, --time int   Seconds to wait for stop before killing it (default 10)

     命令如下:

% docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS          PORTS                  NAMES
e9e3294f5339   nginx     "/docker-entrypoint.…"   8 minutes ago   Up 35 seconds   0.0.0.0:8088->80/tcp   nginx-test
% docker stop e9e3294f5339
e9e3294f5339
% docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

强制停止docker容器

      使用 docker kill 来停止 docker 的容器。

       命令如下:

% docker kill --help
Usage:  docker kill [OPTIONS] CONTAINER [CONTAINER...]
Kill one or more running containers
Options:
  -s, --signal string   Signal to send to the container (default "KILL")

       例如:

% docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS                  NAMES
e9e3294f5339   nginx     "/docker-entrypoint.…"   11 minutes ago   Up 3 seconds   0.0.0.0:8088->80/tcp   nginx-test
% docker kill e9e3294f5339
e9e3294f5339
% docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

启动停止的容器

      可以使用 docker start 来启动被 stop 或 kill 的容器。

% docker start --help
Usage:  docker start [OPTIONS] CONTAINER [CONTAINER...]
Start one or more stopped containers
Options:
  -a, --attach               Attach STDOUT/STDERR and forward signals
      --detach-keys string   Override the key sequence for detaching a container
  -i, --interactive          Attach container's STDIN

      例如:

% docker start e9e3294f5339
e9e3294f5339
% docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS                  NAMES
e9e3294f5339   nginx     "/docker-entrypoint.…"   14 minutes ago   Up 5 seconds   0.0.0.0:8088->80/tcp   nginx-test

重启容器

       可以使用 docker restart 来完成 docker stop 和 docker start 两个命令的工作

       命令如下:

% docker restart --help
Usage:  docker restart [OPTIONS] CONTAINER [CONTAINER...]
Restart one or more containers
Options:
  -t, --time int   Seconds to wait for stop before killing the container (default 10)

       例如:

% docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS                  NAMES
e9e3294f5339   nginx     "/docker-entrypoint.…"   16 minutes ago   Up 2 minutes   0.0.0.0:8088->80/tcp   nginx-test
% docker restart e9e3294f5339
e9e3294f5339
% docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS                  NAMES
e9e3294f5339   nginx     "/docker-entrypoint.…"   17 minutes ago   Up 3 seconds   0.0.0.0:8088->80/tcp   nginx-test

       是否进行了重启,可以查看status字段。

进入容器

       可以使用 docker exec 进入容器进行管理。

       命令如下:

 % docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                  NAMES
e9e3294f5339   nginx     "/docker-entrypoint.…"   38 minutes ago   Up 14 minutes   0.0.0.0:8088->80/tcp   nginx-test
% docker exec -it e9e3294f5339 /bin/bash
root@e9e3294f5339:/# uname -r
4.19.121-linuxkit

删除容器

       可以使用 docker rm 来删除容器。

       命令如下:

% docker rm --help
Usage:  docker rm [OPTIONS] CONTAINER [CONTAINER...]
Remove one or more containers
Options:
  -f, --force     Force the removal of a running container (uses SIGKILL)
  -l, --link      Remove the specified link
  -v, --volumes   Remove anonymous volumes associated with the container

       例如:

% docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                  NAMES
e9e3294f5339   nginx     "/docker-entrypoint.…"   56 minutes ago   Up 33 minutes   0.0.0.0:8088->80/tcp   nginx-test
% docker stop e9e3294f5339
e9e3294f5339
% docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
% docker ps -all
CONTAINER ID   IMAGE     COMMAND                  CREATED      STATUS                  PORTS     NAMES
5669d0d7c177   mysql     "docker-entrypoint.s…"   7 days ago   Exited (0) 5 days ago             mysql-new

总结

      上面的命令,基本上就把常用的对于镜像和容器的命令进行了整理。希望对你有帮助。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
Linux 持续交付 Go
Docker常用命令总结
这篇文章总结了Docker的基本操作,包括Docker的简介、镜像、容器和仓库的概念。介绍了如何在CentOS上安装和卸载Docker,以及常用Docker命令,如查看和删除镜像、运行和管理容器、文件拷贝和日志查看。还提供了一个curl命令示例来测试本地容器服务。完整内容请参考原文链接:[Docker命令总结](https://blog.csdn.net/javayoungcoolboy/article/details/134975314)。
|
6天前
|
运维 Linux Shell
Docker详解(七)——Docker辅助命令
Docker详解(七)——Docker辅助命令
21 4
|
11天前
|
存储 Shell Docker
docker 部署单节点的etcd以及 常用使用命令
在 Docker 中部署单节点的 etcd 以及一些常用命令的操作,可以按照以下步骤进行: ## 一、部署单节点 etcd 1. **拉取 etcd Docker 镜像**:您可以从 Docker Hub 拉取 etcd 的官方镜像。 ```shell docker pull quay.io/coreos/etcd:latest ``` 2. **启动 etcd 容器**:使用 `docker run` 命令来启动 etcd 容器。以下是一个示例命令,其中将容器的 2379 端口映射到主机的 2379 端口: ```shell docker run -d \
|
11天前
|
NoSQL Linux Shell
2.Docker常用命令(linux)
2.Docker常用命令(linux)
|
13天前
|
存储 运维 Linux
Docker详解(六)——Docker高级控制命令
Docker详解(六)——Docker高级控制命令
20 2
|
13天前
|
运维 监控 Linux
【专栏】Docker命令`docker ps`的使用,包括列出运行中的容器、筛选特定容器、组合使用与其他命令配合以及在故障排查中的应用
【4月更文挑战第28天】本文介绍了Docker命令`docker ps`的使用,包括列出运行中的容器、筛选特定容器、组合使用与其他命令配合以及在故障排查中的应用。通过基础和高级用法示例,如列出所有容器、搜索特定镜像、监控资源使用等,帮助读者理解和提升容器管理效率。对于Linux运维工程师,掌握`docker ps`是必备技能。
|
17天前
|
Ubuntu Linux Shell
Docker 镜像及其命令
Docker 镜像及其命令
57 0
|
17天前
|
存储 Ubuntu 安全
Docker容器常用命令
Docker容器常用命令
24 1
|
18天前
|
关系型数据库 MySQL Linux
[Docker] 的常用命令
[Docker] 的常用命令
|
18天前
|
监控 Docker 容器
Docker从入门到精通:Docker log 命令学习
了解 Docker 日志管理对容器监控至关重要。`docker logs` 命令用于查看和管理容器日志,例如,`docker logs <container_name>` 显示容器日志,`-f` 或 `--follow` 实时跟踪日志,`--tail` 显示指定行数,`--timestamps` 添加时间戳,`--since` 按日期筛选。Docker 支持多种日志驱动,如 `syslog`,可通过 `--log-driver` 配置。有效管理日志能提升应用程序的稳定性和可维护性。
17 0