Docker的常用命令
帮助命令
docker version:显示版本信息(加sudo可以显示更多信息)
docker info:显示docker的系统信息,包括镜像和容器的数量
docker --help:万能命令
镜像命令
Docker images:查看所有本地主机上的镜像
docker images
- 可选项
- -a,--all:列出所有镜像
- -q,--quiet:只显示镜像的id
Docker search 搜索镜像
sudo docker search 镜像名
- 可选项,通过搜索来过滤
- -f, --filter filter:根据提供的条件过滤输出( sudo docker search mysql -f=stars=3000:搜索出来的镜像就是STARS大于3000的)
Docker pull 下载镜像
sudo docker pull 镜像名[:tag](tag用法docker tag详解_菩 提的博客-CSDN博客)
如果不写tag,默认就是latest
sudo docker pull 镜像名:版本号:指定版本下载(sudo docker pull mysql:5.7)
Docker rmi 删除命令
sudo docker rmi -f 镜像ID:删除指定容器(sudo docker rmi -f dd6675b5cfea,不加-f也可以删除)
sudo docker rmi -f 镜像ID 镜像ID 镜像ID:同时删除多个镜像
sudo docker rmi -f $(sudo docker images -aq):删除全部镜像(如果你不是root用户括号内的指令需要加sudo)
容器命令
新建容器并启动
sudo docker run -it centos /bin/bash:启动并进入容器,exit 退出容器
可选项
- --name=“name”:容器名字
- -d:后台方式运行
- -it:使用交互方式运行,进入容器查看内容
- -p:指定容器的端口 -p 8080:8080
- -p:主机端口:容器端口(常用)
- -p:容器端口
- -p ip:主机端口:容器端口
- -P:随机指定端口
列出所有的运行的容器
sudo docker ps
- 可选项
- -a:正在运行的容器+带出历史运行过的容器
- -n=查看的条数:显示最近创建的容器
- -q:只显示容器的编号
退出容器
exit:直接停止容器并退出
Ctrl + P + Q:容器不停止退出
进入当前正在运行的容器
sudo docker exec -it 容器id /bin/bash(进入容器开启一个新的终端,可以在里面操作<常用>)
sudo docker attach 容器id(进入容器正在执行的终端,不会启动新的进程)
删除容器
dudo docker rm 容器id:删除指定的容器(不能删除正在运行的容器,如果要强制删除需要使用 rm -f)
sudo docker rm -f $(docker ps -aq):删除所有的容器(如果你不是root用户括号内的指令需要加sudo)
sudo docker ps -aq|xargs docker rm:也可以使用管道符 “ | ” 和xargs进行一个个删除全部容器xargs_百度百科
启动和停止容器的操作
sudo docker start 容器id:启动容器
sudo docker restart 容器id:重启容器
sudo docker stop 容器id:停止当前正在运行的容器
sudo docker kill 容器id:强制停止当前容器
常用其他命令
后台启动容器
sudo docker run -d 镜像名
常见的坑,docker容器使用后台运行就必须要有一个前台进程,否则docker发现没有应用就会自动停止
查看日志
sudo docker logs -tf --tail 日志显示的条数 容器id
可选项
--details 显示提供给日志的额外详细信息
-f, --follow 跟踪日志输出
--since string 显示自时间戳(例如2013-01-02T13:23:37Z)或相对时间戳(如42米,持续42分钟)以来的日志
-n, --tail string 从日志末尾开始显示的行数(默认为“all”)
-t, --timestamps 显示时间戳
--until string 显示时间戳之前的日志(例如2013-01-02T13:23:37Z)或相对时间戳之前(例如42米,持续42分钟)
(常用的是 -tf --tail 日志数 容器id,--tail 也可以用 -n 来代替)
sudo docker logs -tfn 10 41c6c24aac08
查看容器中的进程信息
sudo docker top 容器id
查看镜像的元数据
sudo docker inspect 容器id
从容器内拷贝文件到主机上
sudo docker cp f3c0173f7c34:/home/test.java /home
在容器中的home目录创建test.java
拷贝容器home目录中的test.java到主机的home目录
复制f3c0173f7c34这个容器中home目录中的test.java到主机的home目录中
小结
端口部署