【Docker】Docker常用命令

 

帮助命令

 1.docker version  : 显示 Docker 版本信息。

songguojundeMBP:local songguojun$ docker version
Client: Docker Engine - Community
 Version:           19.03.1
 API version:       1.40
 Go version:        go1.12.5
 Git commit:        74b1e89
 Built:             Thu Jul 25 21:18:17 2019
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.1
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.5
  Git commit:       74b1e89
  Built:            Thu Jul 25 21:17:52 2019
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          v1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

  2.docker info : 显示 Docker 系统信息,包括镜像和容器数等,比docker version 信息更全面。

songguojundeMBP:local songguojun$ docker info
Client:
 Debug Mode: false

Server:
 Containers: 17       #容器的数量
  Running: 0
  Paused: 0
  Stopped: 17
 Images: 25           #镜像的数量
 Server Version: 19.03.1
 Storage Driver: overlay2  #存储的驱动
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
  ....... 

  3.docker --help  : 查看帮助命令。

镜像操作命令

  1.docker images:列出本地所有镜像,这个命令会列出5列,以下是各个列选项说明

    1)REPOSITORY:仓库的镜像源。

    2)TAG:镜像的标签。同一个仓库源会可能有多个TAG,我们使用REPOSITORY:TAG来定义不同的镜像,一般默认是latest

    3)IMAGE ID :镜像id。

    4)CREATED:镜像创建的时间。

    5)SIZE:镜像的大小。

  常用参数选项:

    1)-a:列出本地所有镜像(包含中间映像层,因为镜像是分层的)。

    2)-q:只显示镜像ID。

    3)--digests:显示镜像的摘要信息。

    4)--no-trunc:显示完整的镜像信息。

songguojundeMBP:local songguojun$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
mysql                     5.7.26              e9c354083de7        7 months ago        373MB
mysql                     8.0.16              de764ad211de        7 months ago        443MB
ghost_nginx               latest              013d44036fcd        8 months ago        109MB
ghost_ghost-app           latest              274b8a6b028c        8 months ago        364MB
ghost                     latest              f3b796dbbc45        8 months ago        364MB
redis                     5.0                 598a6f110d01        8 months ago        118MB
redis                     5.0.5               598a6f110d01        8 months ago        118MB

  2.docker search:从hub.docker.com上搜索搜索docker镜像。

   命令:docker search 镜像名

      NAME:镜像的名字 DESCRIPTION:描述 STARS:镜像个数

      OFFICIAL:是否官方镜像 AUTOMATED:自动构建

C:Userssonggq>docker search mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   8388                [OK]             
mariadb                           MariaDB is a community-developed fork of MyS…   2884                [OK]             
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   624   

  docker search的搜索和从hub.docker.com网站上的搜索效果一致。

  3.拉取或更新镜像

    命令:docker pull 镜像名 下载对应的最新版本的镜像  版本号。

       docker pull nignx 等驾驭 docker pull nginx:latest

                 docker pull -a 镜像名 下载对所有版本的镜像

       docker pull --disable-content-trust 镜像名[:版本号] 下载镜像,忽略镜像的校验,默认开启的

C:Userssonggq>docker pull mysql:5.7.26
5.7.26: Pulling from library/mysql
Digest: sha256:c3594c6528b31c6222ba426d836600abd45f554d078ef661d3c882604c70ad0a
Status: Downloaded newer image for mysql:5.7.26

   4.docker rmi :删除镜像。

    常用参数选项:

      1)-f:强制删除镜像,一般删除镜像前要先停止使用该镜像正在运行的容器,使用f参数就可以强制删除。

    常用操作:

      1)删除多个镜像:

docker rmi 镜像名 镜像名 ... 

          运行实例

    

      2)删除全部镜像,这是一个组合命令

docker rmi $(docker images -qa)



容器操作相关命令

      1. docker run [OPTIONS] IMAGE [COMMAND] [ARG...]:运行一个容器。

    常用参数选项:

      1)  -d:以后台守护方法运行容器,并返回一个随机生成的容器ID。

      2)-i:以交互的模式运行容器,通常于参数-t同时使用。

      3)-t:为容器分配一个可以命令交互的伪终端。

      4)-P:随机端口映射。

      5)-p:指定端口映射,一般有4种格式,ip:hostPort:containerPort,ip:containerPort,hostPort:containerPort,containerPort。

      6)--name="容器名称":为容器指定一个名称。

    实例

      1)使用centos docker镜像来运行一个容器

songguojundeMBP:local songguojun$ docker images       #查看centos镜像的ID(标红的)
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              470671670cac        7 weeks ago         237MB
songguojundeMBP:local songguojun$ docker run -it 470671670cac     #运行centos容器并进入

     容器内提示符和容器ID是一致的。

  

  下图是docker run的工作机制

    

    

    我本地是没有centos7-ansible这个镜像的,当运行时候发现没有docker自己会去镜像仓库自己去拉一份然后运行。

      2. docker  start/stop/restart

    容器启动

songguojundeMBP:local songguojun$ docker ps -n 2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
af8b5dfbe419        470671670cac        "/bin/bash"         46 minutes ago      Exited (127) 19 minutes ago                       zealous_wilson
6b2c05149a3c        470671670cac        "-it"               46 minutes ago      Created                                           musing_ride
songguojundeMBP:local songguojun$ docker start af8b5dfbe419    #启动上面已经被关闭的容器
af8b5dfbe419
songguojundeMBP:local songguojun$ docker ps -n 2
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
af8b5dfbe419        470671670cac        "/bin/bash"         46 minutes ago      Up 2 seconds                            zealous_wilson   #状态位up 说明已经被启动
6b2c05149a3c        470671670cac        "-it"               46 minutes ago      Created                                 musing_ride

    容器退出两种方式:

      1)容器内部输入exit。这是容器停止并退出。

      2)ctrl + P + Q,这是容器退出但不停止。

      3. docker kill:强制关闭容器。

      4. docker ps:列出容器

    常用参数选项:-n :列出最近创建的n个容器。

    实例

  

      5. docker pause/unpause

      6. docker create

      7. docker exec:进入容器。   

    进入容器有两个命令 docker attach 命令或 docker exec 命令,一般使用docker exec 命令。

    docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。

    只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。

    当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。

songguojundeMBP:opt songguojun$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
778a9a0171ab        470671670cac        "/bin/bash"         About a minute ago   Up 4 seconds                            docker_centos
songguojundeMBP:opt songguojun$ docker exec -it 778a9a0171ab /bin/bash
[root@778a9a0171ab /]# 

    8. docker rm :删除已经停止的容器。

    1)一次性删除多个容器:docker rm -f $(docker ps -a -q)

原文地址:https://www.cnblogs.com/songgj/p/11196004.html