Docker 常用命令

查看docker版本
docker version
查看docker信息
docker info
[root@VM-16-2-centos ~]# docker info 
Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 0
Server Version: 18.06.0-ce
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 macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d64c661f1d51c48782c9cec8fda7604785f93587
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-1160.11.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.7GiB
Name: VM-16-2-centos
ID: X4IO:X7A6:55H6:3LY4:NRR2:UXTF:3RH6:246G:YMP4:R26D:MRCN:ZSVX
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Registry Mirrors:
 https://lp4ub15b.mirror.aliyuncs.com/
Live Restore Enabled: false

我们可以看到存在的Containers有两个,我们可以通过 docker container ls -a 验证下。

从docker 服务获取实时事件 (通俗一点理解就是操作日志,比如对镜像、容器、网络、挂载卷等操作,就会记录对应的事件信息)
#
docker events


# 事件过滤:过滤自从2022-01-27以来,关于mysql的日志
docker events --since 2022-01-27 -f image=mysql

镜像列表
# 查询镜像列表
docker images

# 输出
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
nacos/nacos-server   latest              bdf60dc2ada3        4 months ago        1.05GB
mysql                5.7.25              98455b9624a9        2 years ago         372MB

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


#列出本地所有的镜像
docker images -a 

#只显示镜像ID
docker images -q


在docker仓库中查询mysql 镜像
docker search mysql
下载镜像
# 通过docker下载mysql镜像    
docker pull mysql
# 通过docker下载指定mysql版本镜像
docker pull mysql:5.7
删除镜像
# 删除镜像
docker rmi -f 镜像ID

# 批量删除镜像(慎用,因为把本地所有镜像都删掉了)
docker rmi -f $(docker images -aq)

新建容器并启动容器

docker run [可选参数] image

#参数说明
--name="Name"	容器名称  tomcat01  tomcat02,用户区分容器
-d			后台方式运行
-it 		使用交互方式运行,进入容器中查看内容
-p 			指定容器的端口	-p  8080:8080

#示例:
# 测试,启动
docker run -it centos /bin/bash

从容器中退出

#方式一、容器停止并退出
exit

#方式二、从容器中退出并且容器不停止
Ctrl+P+Q

查看当前正在运行的容器

#
docker ps

查看所有运行过的容器

# 查看所有运行过的容器
docker ps -a

删除容器

#删除容器
docker rm 容器ID	通过容器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

常用其他命令

查看日志命令

# 查看日志命令
docker logs

#显示指定行数的日志
docker logs -f -t --tail 行数 运行中的容器ID

#解释
	-tf   显示日志
	--tail number  要显示的日志条数
示例:
[root@VM-16-2-centos ~]# docker logs -f -t --tail 10 d6ee0dff7fad

查看当前容器内部的进程信息

# 查看当前容器内部的进程信息
docker top 容器ID
示例
[root@VM-16-2-centos ~]# docker top d6ee0dff7fad

查看镜像数据

# 查看镜像元数据
docker inspect

docker inspect 容器ID
[root@VM-16-2-centos ~]# docker inspect d6ee0dff7fad

进入当前正在运行的容器

#进入当前正在运行的容器

#方式一  进入容器后开启一个新的终端
docker exec -it 容器ID	/bin/bash			

#方式二  进入容器后进入当前正在执行的终端
docker attach  容器ID							

将docker中的文件拷贝到容器外的主机上

docker cp 容器ID:/home/test.java /root/

#示例:
[root@VM-16-2-centos ~]# docker cp 5120ed565cdd:/home/test.java /

# 注释:后面将使用数据卷技术导出数据。
原文地址:https://www.cnblogs.com/duanxiaobiao/p/15706406.html