• 【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)

  • 相关阅读:
    员工年龄排序之桶排序
    滑动窗口中最大值
    开机自动启动Tomcat
    基于RXTX的串口通讯 windows64位系统可用
    一些SQL
    Java 实现文件上传、下载、打包、文件copy、文件夹copy。
    Page-encoding specified in XML prolog (UTF-8) is different from that specified in page directive (utf-8)
    Java -> 把Excel表格中的数据写入数据库与从数据库中读出到本地 (未完善)
    (转)解决:本地计算机 上的 OracleOraDb10g_home1TNSListener服务启动后停止
    PHP、Java对称加密中的AES加密方法
  • 原文地址:https://www.cnblogs.com/songgj/p/11196004.html
Copyright © 2020-2023  润新知