Docker常用命令
docker version # 显示docker的版本信息
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help # 万能命令
官方帮助文档(Reference)
镜像命令
docker images
[root@centos7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 6 days ago 13.3kB
# 解释
REPOSITORY # 镜像仓库源(名称)
TAG # 镜像的标签
IMAGE ID # 镜像的ID
CREATED # 镜像的创建时间
SIZE # 镜像的大小
Options:
-a, --all # 列出所有镜像
-q, --quiet # 只显示镜像ID
docker search 搜索镜像
[root@centos7 ~]# docker search mysql
# 通过STARS来过滤
[root@centos7 ~]# docker search mysql -f=stars=9000
docker pull 下载镜像
[root@centos7 ~]# docker pull mysql # 如果不写tag(标签)默认下载最新版(latest)
[root@centos7 ~]# docker pull mysql:5.7 # 指定版本的下载,通过tag
Options:
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
--platform string Set platform if server is multi-platform capable
-q, --quiet Suppress verbose output
docker rmi 删除镜像
# 通过镜像ID删除镜像
[root@centos7 ~]# docker rmi -f d1165f221234
[root@centos7 ~]# docker rmi -f a70d36bc331a d1165f221234 # 通过ID删除多个镜像,使用空格隔开ID
Untagged: hello-world:latest
Untagged: hello-world@sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726
# -f 强制删除 (获取到所有镜像ID)
[root@centos7 ~]# docker rmi -f $(docker images -aq) # 递归删除所有镜像
容器的命令
说明:有了镜像才可以创建容器,下载CentOS来测试学习
[root@centos7 ~]# docker pull centos
新建容器并启动
docker run [可选参数] image
# 参数说明
--name="Name" 容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口号 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:`映射到容器端口`容器端口 (常用方式)
-p 容器端口
容器端口
-P 随机指定端口
交互进入容器
# 测试、启动并进入容器
[root@centos7 ~]# docker run -it centos /bin/bash
[root@04278e082836 /]#
退出容器
# 从容器中退回主机
[root@04278e082836 /]# exit # 容器停止并退出
exit
ctrl + p + q # 容器不停止退出(需要按顺序按下该快捷键 )
查看当前容器
# 查看当前正在运行的容器
[root@centos7 /]# docker ps
空 # 列出当前正在运行的容器
-a # 列出所有运行的容器包含历史运行的容器
-n # 显示最近创建的容器
-q # 只显示容器编号
[root@centos7 /]# docker ps -a -n=?`参数`
[root@centos7 /]# docker ps -a -n=1
删除容器
docker rm 容器id # 删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f
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 run -d centos
# 如果docker ps,发现centos停止了
# 原因,docker容器使用后台运行,就必须要有一个前台进程
# 如果docker发现没有应用,就会自动停止
查看日志
docker logs -f -t --tail 10 镜像ID
# 显示日志
-tf # 显示日志
--tail number # 要显示日志条数
查看容器中进程信息
# docker top 容器ID
[root@centos7 /]# docker top de94c07fc604
查看容器内部的信息
docker inspect --help
docker inspect ID # ID为容器ID
进入当前正在运行的容器
# 容器通常都是后台运行的,需要进入容器修改一些配置
# 命令
docker exec -it 容器ID bashShell
# 或者
docker attach 容器ID
# docker exec # 进入容器后开启一个新的终端,可以在里面操作(常用)
# docker attach # 进入容器正在执行的终端,不会启动新的进程
从容器拷贝文件到主机
# 容器内文件路径 主机路径
docker cp [容器ID]:/home/test.java /home