Docker基本命令

319 阅读2分钟

镜像命令

docker images 查看所有本地主机的镜像

[root@localhost zhouyu]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   2 months ago   13.3kB

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

#  可选项
-a,-all       #  列出所有镜像
-q,-quiet     #  只显示镜像的ID

docker search xxx 搜索镜像

[root@localhost zhouyu]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFIC   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10886     [OK]    
mariadb                           MariaDB Server is a high performing open sou…   4104      [OK]    
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   809               [OK]
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   87                
mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   83                
centurylink/mysql                 Image containing mysql. Optimized to be link…   59                [OK]
bitnami/mysql                     Bitnami MySQL Docker Image                      52                [OK]
… …
… …

docker search xxx --filter=STATS=3000 添加过滤条件搜索镜像

#只显示START大于3000的mysql条目

[root@localhost zhouyu]# docker search mysql
NAME                              DESCRIPTION                                     STARS     OFFIC   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10886     [OK]    
mariadb                           MariaDB Server is a high performing open sou…   4104      [OK]    
… …
… …

docker pull xxx 下载镜像

[root@localhost zhouyu]# docker pull mysql
----------------
#  指定版本下载
[root@localhost zhouyu]# docker pull mysql:5.7

docker rmi 删除镜像

#  删除指定的容器
[root@localhost zhouyu]# docker rmi-f 容器id
#  删除多个容器
[root@localhost zhouyu]# docker rmi-f 容器id 容器id ... 容器id
#  删除所有容器
[root@localhost zhouyu]# docker rmi-f $(docker images -aq)

Docker命令

首先在docker中下载一个centos用于测试。

[root@localhost zhouyu]# docker pull centos

新建容器并启动

docker run [可选参数] image

#  参数说明
--name="Name"     自定义容器名字,用于区分容器
-d                以后台方式运行
-it               使用交互方式运行,进入容器查看内容 
-p                指定容器端口  
    -p    主机端口:容器端口(常用)
    -p    容器端口
    -p    ip:主机端口:容器端口
-P                随机指定端口


# 启动并进入容器
[root@localhost /]# docker run -it centos /bin/bash
[root@9e1d2a194c5c /]# ls
bin  etc   lib	  lost+found  mnt  proc  run   srv  tmp  var  dev  home  lib64  media       opt  root  sbin  sys  usr

#  退出并停止容器
[root@9e1d2a194c5c /]# exit
exit

列出所有运行的容器

[root@localhost /]# docker ps -a
CONTAINER ID   IMAGE         COMMAND       CREATED         STATUS                     PORTS     NAMES
9e1d2a194c5c   centos        "/bin/bash"   4 minutes ago   Exited (0) 2 minutes ago             agitated_shtern
7e9be41d85e6   hello-world   "/hello"      3 hours ago     Exited (0) 3 hours ago               priceless_lewin
eb19dfa5a7ed   hello-world   "/hello"      33 hours ago    Exited (0) 33 hours ago              agitated_roentgen
f901b90c67aa   hello-world   "/hello"      33 hours ago    Created                              busy_jackson
a3bd5627d03d   hello-world   "/hello"      33 hours ago    Created                              crazy_jepsen

-a      列出当前和历史运行容器
-n=?    列出最近创建的容器
-q      显示所有容器的编号

退出容器

exit            #  退出并停止容器
Ctrl + P + Q    #  退出但不停止容器

删除容器

docker rm 容器ID                  #  删除指定容器,不能删除正在运行的容器
docker rm -f $(docker ps -aq)     #  删除所有容器 
docker ps -a -q|xargs docker rm   #  删除所有容器

启动和停止容器

docker start 容器id         #  启动容器
docker restart 容器id       #  重启容器
docker stop 容器id          #  停止指定正在运行的容器
docker kill 容器id          #  强制停止指定容器

常用其他命令

后台启动容器

[root@localhost /]# docker run -d centos

#  问题:执行 docker ps命令,发现centos停止了
    docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止。比如Nginx容器启动后,发现自己没有提供服务,就会立刻停止。

查看日志

docker logs

记录:看到第11个视频。