• Docker的常用命令



    以下是Docker相关笔记总结,方便自己以后复习,同时也希望对大家有所帮助。


    官方文档传送门

    帮助命令

    docker version			 #显示docker的版本信息
    docker info				 #显示docker的系统信息,包括镜像和容器的数量
    docker 命令 --help	     #帮助命令
    
    • 1
    • 2
    • 3

    镜像命令

    docker images

    查看所有本地的主机上的镜像
    常用可选项

    -a	  --all      #列出所有镜像
    -q	  --quiet    #只显示镜像的id
    
    • 1
    • 2

    测试

    ubuntu@VM-4-3-ubuntu:~$ sudo docker images
    REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
    mysql         5.7       262701d58edd   5 days ago      495MB
    hello-world   latest    feb5d9fea6a5   12 months ago   13.3kB
    
    • 1
    • 2
    • 3
    • 4

    返回值解释

    REPOSITORY		#镜像仓库源
    TAG				#镜像标签
    IMAGE ID 		#镜像id
    CREATED			#镜像创建时间
    SIZE			#镜像的大小
    
    • 1
    • 2
    • 3
    • 4
    • 5

    docker search

    搜索镜像
    常用可选项

    --filter=stars=3000      #搜索出来的镜像就是stars大于3000的
    
    • 1

    测试

    #不加限制的
    ubuntu@VM-4-3-ubuntu:~$ sudo docker search mysql
    NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    mysql                           MySQL is a widely used, open-source relation…   13234     [OK]       
    mariadb                         MariaDB Server is a high performing open sou…   5062      [OK]       
    phpmyadmin                      phpMyAdmin - A web interface for MySQL and M…   640       [OK]   
    ...
    
    #加过滤的
    ubuntu@VM-4-3-ubuntu:~$ sudo docker search mysql --filter=stars=3000
    NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    mysql     MySQL is a widely used, open-source relation…   13234     [OK]       
    mariadb   MariaDB Server is a high performing open sou…   5062      [OK]   
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    docker pull

    下载镜像
    docker pull 镜像名[:tag]
    测试

    #下载镜像 docker pull mysql:5.7
    ubuntu@VM-4-3-ubuntu:~$ docker pull mysql
    Using default tag: latest		#如果不写tag,默认就是latest
    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=mysql&tag=latest": dial unix /var/run/docker.sock: connect: permission denied
    ubuntu@VM-4-3-ubuntu:~$ 
    ubuntu@VM-4-3-ubuntu:~$ sudo docker pull mysql
    Using default tag: latest
    latest: Pulling from library/mysql
    5ed150ed0abe: Pull complete 		#分层下载,docker images的核心,联合文件系统
    0fede58e17ac: Pull complete 
    994a6ddd6efe: Pull complete 
    028bda79779b: Pull complete 
    426fbe9e56a2: Pull complete 
    1a00e58dd193: Pull complete 
    4a4f64494005: Pull complete 
    fba8ab3534a7: Pull complete 
    2695938edf88: Pull complete 
    3754e2587bed: Pull complete 
    1b9f154543e7: Pull complete 
    Digest: sha256:147572c972192417add6f1cf65ea33edfd44086e461a3381601b53e1662f5d15		#签名
    Status: Downloaded newer image for mysql:latest	
    docker.io/library/mysql:latest		#真实地址
    
    #等价于
    docker pull mysql
    docker pull docker.io/library/mysql:latest
    
    #指定版本下载
    ubuntu@VM-4-3-ubuntu:~$ sudo docker pull mysql:5.7
    5.7: Pulling from library/mysql
    0056409b8e89: Pull complete 
    219bd535343d: Pull complete 
    f220ee65eb90: Pull complete 
    7bbb395b2290: Pull complete 
    645e487e5f0a: Pull complete 
    a9fa38d2e1fb: Pull complete 
    e1d9f4f7e8b4: Pull complete 
    e03fcfe5d90e: Pull complete 
    74c4d4272e30: Pull complete 
    e3a8ad6eeebe: Pull complete 
    919524a8718b: Pull complete 
    Digest: sha256:94176d0ad4ed85767fc0d74b8071387109a0390e7c1afd39788269c96d2dad74
    Status: Downloaded newer image for mysql:5.7
    docker.io/library/mysql:5.7
    
    #查看镜像
    ubuntu@VM-4-3-ubuntu:~$ sudo docker images
    REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
    mysql        latest    40b83de8fb1a   4 days ago   535MB
    mysql        5.7       262701d58edd   5 days ago   495MB
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    docker rmi

    删除镜像

    docker rmi -f 镜像id							#删除指定镜像
    docker rmi -f 镜像id 镜像id 镜像id 镜像id		 #删除指定多个镜像 
    docker rmi -f $(sudo docker images -aq)	         #删除全部的镜像
    
    • 1
    • 2
    • 3

    容器命令

    说明:有了镜像才可以创建容器
    本文是在ubuntu中下载一个centos测试

    docker pull centos
    
    • 1

    docker run

    docker run [可选参数] image 新建容器并启动
    常用参数

    --name="Name"			#容器名字 Tomcat01 Tomcat02,用来区分容器
    -d					   #后台方式运行
    -it					   #使用交互式方式,进入容器查看内容
    -p					   #指定容器的端口 比如:-p 8080:8080
    	-p ip:主机端口:容器端口
    	-p 主机端口:容器端口(常用)
    	-p 容器端口
    	容器端口	
    -P					   #(大写p)随机指定端口
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    测试 启动并进入容器

    ubuntu@VM-4-3-ubuntu:~$ sudo docker run -it centos /bin/bash
    [root@9d4097285a37 /]# ls #查看容器内的centos 基础版本,很多命令都是不完善的
    bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    #从容器中退回主机
    [root@9d4097285a37 /]# exit
    exit
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    docker ps

    列出所有的运行的容器
    常用参数

    # docker ps 命令
    空参数		#列出当前正在运行的容器
    -a		   #列出当前正在运行的容器+历史运行过的容器
    -n=#显示最近创建的?个容器
    -q		   #只是显示容器的编号
    
    • 1
    • 2
    • 3
    • 4
    • 5

    测试

    ubuntu@VM-4-3-ubuntu:~$ sudo docker ps
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    ubuntu@VM-4-3-ubuntu:~$ sudo docker ps -a
    CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                     PORTS     NAMES
    9d4097285a37   centos         "/bin/bash"   8 minutes ago   Exited (0) 4 minutes ago             goofy_blackwell
    2675b9e8aead   feb5d9fea6a5   "/hello"      7 hours ago     Exited (0) 7 hours ago               infallible_borg
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    退出容器

    exit		#容器停止并退出
    Ctrl +p +Q   #容器不停止退出
    
    • 1
    • 2

    删除容器

    docker rm 容器id					#删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f
    docker rm -f $(docker ps -aq)	    #删除所有的容器
    docker ps -a -q|xargs docker rm	    #删除所有容器
    
    • 1
    • 2
    • 3

    启动和停止容器的操作

    docker start 容器id		#启动容器
    docker restart 容器id		#重启容器
    docker stop 容器id		#停止当前正在运行的容器
    docker kill 容器id		#强制停止当前容器
    
    • 1
    • 2
    • 3
    • 4

    常用其他命令

    查看日志命令

    docker logs -f -t --tail 容器id
    #显示日志
    -tf    				#显示日志
    --tail number 		#要显示日志条数
    
    • 1
    • 2
    • 3
    • 4

    查看容器中进程

    docker top 容器id
    
    • 1

    获取容器/镜像的元数据

    docker inspect 容器id
    
    • 1

    进入当前正在运行的容器

    docker exec		    #进入容器后开启一个新的终端,可以在里面操作(常用)
    docker attach		#进入容器正在执行的终端,不会启动新的进程
    
    docker exec -it 容器id /bin/bash      #命令行进入
    
    docker attach 容器id
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    从容器中拷贝文件到主机上

    docker cp 容器id:容器内路径 目标主机路径
    
    #拷贝是一个手动过程,可采用-v 卷的技术,实现实时同步
    
    • 1
    • 2
    • 3
  • 相关阅读:
    【c++】分蛋糕(数论)
    CE修改植物大战僵尸-阳光基址(小宇特详解)
    LeetCode刷题笔记【25】:贪心算法专题-3(K次取反后最大化的数组和、加油站、分发糖果)
    做知识付费,这十大知识付费平台一定要知道
    如何在移动钱包中搭建一个小程序应用商店
    【postgresql】数据表id自增与python sqlachemy结合实例
    STM32 I2C总线锁死原因及解决方法
    7月20日第壹简报,星期三,农历六月廿二
    NovelD: A Simple yet Effective Exploration Criterion论文笔记
    Python基础入门例程18-NP18 生成数字列表(列表)
  • 原文地址:https://blog.csdn.net/BBQ__ZXB/article/details/127439708