Docker常用命令

Docker常用命令

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

镜像命令

#1、查看所有本地主机上的镜像
docker images
[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
zookeeper                3.4.14              721354d41dae        7 days ago          257MB
redis                    latest              bd571e6529f3        7 days ago          104MB
mysql                    5.7                 42cdba9f1b08        8 days ago          448MB
centos                   latest              0d120b6ccaa8        2 months ago        215MB
store/elastic/filebeat   6.8.9               b44b5f67db90        5 months ago        281MB
flink                    1.10.0-scala_2.11   2585924d4457        6 months ago        598MB
hello-world              latest              bf756fb1ae65        9 months ago        13.3kB
kibana                   6.8.4               e7c11052ed4f        12 months ago       817MB
elasticsearch            6.8.4               25476914cc66        12 months ago       955MB
wurstmeister/kafka       2.12-2.2.0          c364cbed5b86        18 months ago       421MB

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

	#可选项(添加在images后面)
	-a, --all   #列出所有镜像
	-q, --quiet #只显示镜像的ID
[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker images -q
721354d41dae
bd571e6529f3
42cdba9f1b08
0d120b6ccaa8
b44b5f67db90
2585924d4457
bf756fb1ae65
e7c11052ed4f
25476914cc66
c364cbed5b86
	
#2、搜索镜像
docker search mysql  #搜索mysql镜像
[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker search mysql
NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10084               [OK]                
mariadb                           MariaDB is a community-developed fork of MyS…   3696                [OK]                
mysql/mysql-server                Optimized MySQL Server Docker images. Create…   737                                     [OK]
percona                           Percona Server is a fork of the MySQL relati…   511                 [OK]                
centos/mysql-57-centos7           MySQL 5.7 SQL database server                   83                                      
mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   77                                      
centurylink/mysql                 Image containing mysql. Optimized to be link…   60                                      [OK]
。。。。。

	#可选项(添加在mysql后面)
	--filter=STARS=3000  #会去找收藏数大于3000的镜像
[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker search mysql --filter=STARS=3000
NAME                DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
mysql               MySQL is a widely used, open-source relation…   10084               [OK]                
mariadb             MariaDB is a community-developed fork of MyS…   3696                [OK]   
	
#3、下载镜像 
docker pull 镜像名[:tag] #tag是版本(注意是docker hub中有的), 不写的话默认是latest

#4、删除镜像
docker rmi -f IMAGE ID #删除指定的容器
docker rmi -f IMAGE ID IMAGE ID IMAGE ID #删除多个容器
docker rmi -f $(docker images -aq)  #删除全部的容器
	
	

容器命令

说明:有了镜像才可以创建容器 ,下载一个centos镜像来测试学习

docker pull centos
[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
Digest: sha256:76d24f3ba3317fa945743bb3746fbaf3a0b752f10b10376960de01da70685fbd
Status: Image is up to date for centos:latest
docker.io/library/centos:latest

#1、启动容器
docker run [可选参数] image
[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker run -it --name testCentos  centos /bin/bash
[root@f51600bdebc0 /]# 
	#参数说明
	--name Name   #容器名字  用来区分容器
	-d 			 #后台方式运行
	-it			 #使用交互方式运行,进入容器查看内容
	-p			 #指定容器的端口 -p 8080:8080
		-p ip:主机端口:容器端口
		-p 主机端口:容器端口(常用)
		-p 容器端口
		容器端口
	-P			 #随机指定端口

#2、测试,启动并进入容器
docker run -it centos /bin/bash  #/bin/bash是linux下的控制台位置
然后root旁边的东西会变成镜像的ID  #[root@f51600bdebc0 /]# 

#3、从容器中退回主机
exit
[root@f51600bdebc0 /]# exit
exit

#4、列出所有运行的容器
docker ps
[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS           MES
3d93cd8f91a4        42cdba9f1b08        "docker-entrypoint.s…"   5 days ago          Up 5 days           3306/tcp, 33060/nderful_pascal
304010b547f4        centos              "/bin/bash"              6 days ago          Up 6 days                           ntos02
e2ce4f39344b        centos              "/bin/bash"              6 days ago          Up 6 days                           ntos01
4f7674333b67        centos              "/bin/bash"              6 days ago          Up 6 days 

	#可选项(添加在ps后面)#列出当前正在运行的容器
	-a   #列出当前正在运行的容器+未运行的容器(被删除的容器将不再显示)
	-n=? #显示最近创建的容器
	-q   #只显示容器的编号
[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker ps -q
304010b547f4
e2ce4f39344b
4f7674333b67
d89d299fd40b
	
#5、退出容器
exit #直接容器停止并退出
Ctrl + P + Q #容器不停止退出
[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker exec -it  testCentos /bin/bash
[root@f51600bdebc0 /]# read escape sequence
# 然后按了  Ctrl + P + Q
[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f51600bdebc0        centos              "/bin/bash"         6 minutes ago       Up About a minute                       testCentos

#6、删除容器
docker rm 容器ID  #删除指定的容器,不能删除正在运行的容器
docker rm $(docker ps -aq)	 #删除所有的容器


#7、启动和停止容器的操作
docker start 容器ID   #启动容器
docker restart 容器ID #重启容器
docker stop 容器ID    #停止当前正在运行的容器
docker kill 容器ID    #强制停止当前容器 

[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker start testCentos
testCentos

[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker stop 3d93cd8f91a4
3d93cd8f91a4

常用其他命令

#1、后台启动容器
docker run -d 镜像名

	#问题 docker ps, 发现 centos停止了
	
	#常见的坑, docker容器使用后台运行, 就必须要有一个前台(控制台)进程,docker发现没有应用,就会自动停止
	#所以要先载入一个容器并运行bash,再 用Ctrl + P + Q  使容器不停止退出,接着便可以进行别的操作了。
	#nginx, 容器启动后, 发现自己没有提供服务, 就会自动停止,就是没有程序了
	
#2、查看日志
docker logs -f -t --tail 容器ID,(这时没有日志)

	#所以先自己编写一个shell脚本
	docker run -d centos /bin/sh -c "while true;do echo zhuge;sleep 1;done"
	docker ps
	#然后会显示出正在运行的容器ID
	
	#显示日志
	-tf        	  #显示日志
	--tail number #要显示日志条数
	docker logs -tf --tail 10 容器ID

#3、查看容器中进程信息
docker top 容器id
[root@iZuf61n8ywv9zx27oeoajoZ ~]# docker top f51600bdebc0
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                27387               27370               0                   19:34               pts/0               00:00:00            /bin/bash
root                27505               27370               0                   19:34               ? 

#4、查看容器的元数据
# 包括挂载目录等等
docker inspect 容器ID

#5、进入当前正在运行的容器
#方式一
docker exec -it 容器ID /bin/bash(bashshell)
#进入容器后开启一个新的终端,可以在里面操作(常用)
#进入容器之后 , 可以使用 cd /etc/文件名 来查看对应容器的配置文件等
[root@iZuf61n8ywv9zx27oeoajoZ /]# docker exec -it 3d93cd8f91a4 /bin/bash
root@3d93cd8f91a4:/# cd /etc     
root@3d93cd8f91a4:/etc# ls
X11			debian_version	group-	   issue	  localtime    mtab	      passwd-	 rc4.d	      selinux  systemd
adduser.conf		default		gshadow    issue.net	  logcheck     mysql	      perl	 rc5.d	      shadow   terminfo
。。。。

#方式二
docker attach 容器ID
#进入容器正在执行的终端, 不会启动新的进程! 

#6、从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径 #注:要退出容器后再操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值