Docker镜像和容器的基本命令

         最近在学docker,最让我头大的是时间紧张,而且dockers的基本命令非常的繁琐,好在大部分命令是非常有规律的,接下来就给大家做一个总结。
         我觉得授人与鱼不如授人以渔,所以大家学习docker最重要的是理解思想和规律,如果有不懂得地方可以查阅官方文档。
         本篇主要讲述基本的docker命令,主要包括镜像命令和容器命令。
         镜像可以理解为一个App压缩包,而容器可以看作一个已经可以使用的软件。一个镜像可以创建多个容器。

帮助命令

  • docker version #显示docker的版本信息
  • docker info #显示详细信息
  • dockers 命令 --help # 万能命令,查阅命令详情

镜像命令

  • docker images #查看所有本机上的镜像
[root@szs /] docker images
 REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
 centos       latest    5d0da3dc9764   6 months ago   231MB

##解释
 REPOSITORY  镜像的仓库源
 TAG         镜像的标签
 IMAGE ID    镜像的ID
 CREATED     镜像的创建时间
 SIZE        镜像的大小


##options 
-a, --all   #列出所有的镜像
-q, --quite #只显示镜像的id

  • docker search #搜索镜像
  • docker search 镜像名(搜索全部相关镜像)
[root@szs /]# docker search mysql
NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                            MySQL is a widely used, open-source relation…   12303     [OK]       
mariadb                          MariaDB Server is a high performing open sou…   4733      [OK]       
mysql/mysql-server               Optimized MySQL Server Docker images. Create…   913                  [OK]
percona                          Percona Server is a fork of the MySQL relati…   572       [OK]       
phpmyadmin                       phpMyAdmin - A web interface for MySQL and M…   480       [OK]       
mysql/mysql-cluster              Experimental MySQL Cluster Docker images. Cr…   93                   
centos/mysql-57-centos7          MySQL 5.7 SQL database server                   92                   
bitnami/mysql                    Bitnami MySQL Docker Image                      67                   [OK]
ubuntu/mysql                     MySQL open source fast, stable, multi-thread…   28                   
circleci/mysql                   MySQL is a widely used, open-source relation…   25                   
mysql/mysql-router               MySQL Router provides transparent routing be…   23                   
centos/mysql-56-centos7          MySQL 5.6 SQL database server                   22                   
google/mysql                     MySQL server for Google Compute Engine          20                   [OK]
vmware/harbor-db                 Mysql container for Harbor                      10                   
mysqlboy/docker-mydumper         docker-mydumper containerizes MySQL logical …   3                    
mysqlboy/mydumper                mydumper for mysql logcial backups              3                    
bitnami/mysqld-exporter                                                          2                    
ibmcom/mysql-s390x               Docker image for mysql-s390x                    1                    
ibmcom/tidb-ppc64le              TiDB is a distributed NewSQL database compat…   0                    
mirantis/mysql                                                                   0                    
mysqlboy/elasticsearch                                                           0                    
mysqleatmydata/mysql-eatmydata                                                   0                    
cimg/mysql                                                                       0                    
mysql/mysql-operator             MySQL Operator for Kubernetes                   0                    
mysql/ndb-operator               MySQL NDB Operator for Kubernetes               0     

  • docker search 镜像名 -f 过滤条件 #搜索符合过滤条件的镜像 f=filter 即过滤器
[root@szs /]# docker search mysql -f stars=4000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   12303     [OK]       
mariadb   MariaDB Server is a high performing open sou…   4733      [OK]   

#搜索stats>=4000的镜像  
  • docker pull #下载镜像
  • docker pull 镜像名 #下载指定镜像,默认下载最新版本
  • docker pull 镜像名:版本号 #下载指定版本的镜像
[root@szs /]# docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest
  • docker rmi -f 镜像id 删除镜像 # rm:remove(移除) i:image(镜像) f:force(强制)
[root@szs /]# docker rmi -f feb5d9fea6a5
Untagged: hello-world:latest
Untagged: hello-world@sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f
Deleted: sha256:feb5d9fea6a5e9606aa995e879d862b825965ba48de054caab5ef356dc6b3412
Deleted: sha256:e07ee1baac5fae6a26f30cabfe54a36d3402f96afda318fe0a96cec4ca393359
  • docker rmi -f $(docker images -aq) #删除所有的镜像 docker images -aq:查询所有的镜像id

  • docker rmi -f 镜像id 镜像id 镜像id #删除多个镜像


容器命令

#有镜像才可以创建容器,所以先下载一个镜像来学习容器使用

[root@szs ~]# docker pull centos
Using default tag: latest  #默认下载最新版本
latest: Pulling from library/centos
a1d0c7532777: Pull complete 
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest

  • docker run -it /bin/bash #启动并进入容器
 [root@szs ~]# docker run -it centos  /bin/bash
 [root@6b9a2c459ae2 /]#    #主机名改变为镜像名(镜像id),说明此时进入容器
 

 
 exit

  • exit #退出容器,直接停止容器并退出
  • Ctrl + Q + P #退出容器,容器不停止运行

  • docker ps #查看运行中的容器
  • docker ps -a #查看所有的容器
  • docker ps -aq #查看所有的容器Id
[root@szs /]# docker ps -a
CONTAINER ID   IMAGE     COMMAND           CREATED         STATUS                          PORTS     NAMES
6b9a2c459ae2   centos    "/bin/bash"       4 minutes ago   Exited (0) About a minute ago             vigorous_bose
c2d43c1fde5a   centos    "-it /bin/bash"   4 minutes ago   Created                                   pedantic_feistel
  • docker rm -f 容器id #删除容器
  • docker rm -f 容器id 容器id 容器id #删除容器
  • docker rm -f $(docker ps -aq) #删除所有容器
[root@szs /]# docker rm -f $(docker ps -aq)
6b9a2c459ae2
c2d43c1fde5a


启动和停止容器操作

  • docker start 容器id #启动容器
  • docker restart 容器id #重启容器
  • docker stop 容器id #停止当前正在运行的容器
  • docker kill 容器id #停止当前正在运行的容器

你可能感兴趣的:(Docker,docker)