专栏首页码农UP2UDocker常用命令

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

总结

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

本文分享自微信公众号 - 码农UP2U(gh_3c91b47a82e0),作者:码农UP2U

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker 常用命令

    用户1180017
  • docker 常用命令

    docker run --name (容器的名字) -d -p hostPort:containerPort 镜像名

    Meet相识
  • Docker--常用命令

    ps:本博文为整理博文,是楼主在学习过程中整理的资源便于以后学习,借鉴的资源都已在文末标出。

    洋仔聊编程
  • docker常用命令

    用户2038589
  • docker常用命令

    更新 : @snakeliwei 的提醒, 现在的docker有了专门清理资源(container、image、网络)的命令。 docker 1.13 中增加了...

    用户1437675
  • Docker常用命令

    首先对容器做变更:举个例子 创建容器,启动ubuntu 开启bash 创建一个文件

    lilugirl
  • Docker常用命令

    学习Docker有段时间了,所有的操作都是在命令行下,如果不是每天都在使用,很容易忘记命令。本文将以学习Docker的角度,从前到后,将一些常用的Docker命...

    oec2003
  • docker 常用命令

    崔笑颜
  • docker 常用命令

    修改docker images的名称,删除同名同id不同tag的镜像,可以使用repository:tag的组合来删除特殊的镜像。

    joshua317
  • docker常用命令

    东营浪人
  • Docker常用命令

    Docker中最核心最基本的概念就是镜像(Image),容器(Container),以及仓库(Repository),其常用的操作命令也就是围绕这三个进行。

    CodingDiray
  • docker 常用命令

    docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口

    墨染秦时
  • Docker 常用命令

    用户1180017
  • Docker常用命令

    集装箱 ———————-容器实例 from镜像模板(下图最左边的)

    字节脉搏实验室
  • Docker常用命令

    YINUXY
  • Docker 常用命令

    wsuo
  • docker常用命令

    happlyfox
  • Docker常用命令

    镜像:Docker 镜像是用于创建 Docker 容器的模板 容器:容器是独立运行的一个或一组应用 仓库:用来保存镜像,可以理解为代码控制中的代码仓库

    yaohong
  • docker 常用命令

    prepared
  • Docker 常用命令

    兜兜毛毛

扫码关注云+社区

领取腾讯云代金券