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 /
# 注释:后面将使用数据卷技术导出数据。