Docker 学习 (2): 常用命令
命令行操作前提:
systemctl start docker 启动docker
sudo -i 进去root模式
一、帮助命令
-
docker version 查看对应安装的版本号,可以用来检测docker是否安装c成功
-
docker info Docker容器安装之后,个人信息的描述,比version更加详细
- docker --help docker的帮助命令
二、镜像命令
前提:在操作镜像的时候,如果镜像名称的后面没有加版本号,那默认就是操作的最高的版本(tomcat:latest)
所以在操作镜像的时候最好都要加上对应的版本号。。。
-
docker images 参数 列出本地主机上的镜像
-a 列出本地所有的镜像(含中间映像层) -q 只显示镜像ID --digests 显示镜像的摘要信息 --no-trunc 显示完整的镜像信息 - 各个选项说明:
REPOSITORY | 表示镜像的仓库源 |
---|---|
TAG | 镜像的标签 |
IMAGE ID | 镜像ID |
CREATED | 镜像创建时间 |
SIZE | 镜像大小 |
-
docker search [OPTIONS] 镜像名字 查看某一个镜像
官网网址 : hub.docker.com 上述命令与网站显示的内容相同
--no-trunc 显示完整的镜像描述 -s 列出收藏数不小于指定值的镜像 --automated 只列出 automated build类型的镜像 -
docker pull 镜像名称 下载镜像
-
docker rmi 镜像名称 删除镜像
加 -f 是强制删除,如果镜像在运行,就不可以删除。可以加 -f 强制删除
docker rmi -f 镜像ID 删除单个 docker rmi -f 镜像名1:TAG 镜像名2:TAG 删除多个 docker rmi -f $(docker images -qa) 删除全部
-
docker rmi -f $(docker images -qa)
相当于是聚合命令,先执行$()里边的语句,查询到全部之后,删除全部
三、容器命令
-
启动容器 docker run [OPTIONS] 镜像名称 参数
- OPTIONS说明(常用):有些是一个减号,有些是两个减号
--name 容器新名字": 为容器指定一个名称 -d 后台运行容器,并返回容器id,也即启动守护式容器 -i 以交互模式运行容器,通常与 -t 同时使用 -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用 -P 随机端口映射 | -p | 指定端口映射,有以下四种格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPort containerPort |
-
启动交互式容器
- #使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。(/bin/bash为默认的,可以不写)
-
启动守护式容器
docker run -d centos
问题:然后docker ps -a 进行查看, 会发现容器已经退出 很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程. 容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如 service nginx start 但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用, 这样的容器后台启动后,会立即自杀因为他觉得他没事可做了. 所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行
-
列出当前所有正在运行的容器 docker ps [OPTIONS]
-
OPTIONS说明(常用):
-a :列出当前所有正在运行的容器+历史上运行过的 -l :显示最近创建的容器。 -n:显示最近n个创建的容器。 -q :静默模式,只显示容器编号。 --no-trunc :不截断输出。OPTIONS说明(常用):
-
-
退出容器
- exit 容器停止退出
- ctrl+P+Q 容器不停止退出
-
启动容器 docker start 容器ID或者容器名
-
重启容器 docker restart 容器ID或者容器名
-
停止容器 docker stop 容器ID或者容器名
-
强制停止 docker kill 容器ID或者容器名
-
删除容器 docker rm 容器ID
- docker rm -f $(docker ps -a -q) 删除多个
- docker ps -a -q | xargs docker rm 删除多个
-
查看容器的日志 docker logs -f -t --tail 容器ID
- -t 是加入时间戳
- -f 跟随最新的日志打印
- --tail 数字 显示最后多少条
启动守护式容器,以2秒运行一次引号以内的语句(ctrl + c 查看日志退出,容器停止运行)
-
查看容器内运行的进程 docker top 容器ID
-
查看容器内部细节 docker inspect 容器ID
-
进入正在运行的容器并以命令行交互
-
docker exec -it 容器ID /bin/bash
-
docker attach 容器ID 重新进入
俩个的区别:
attach 直接进入容器启动命令的终端,不会启动新的进程
exec 是在容器中打开新的终端,并且可以启动新的进程
-
-
从容器内拷贝文件到主机上 docker cp 容器ID:容器内路径 目的主机路径
本人目前也是处于学习阶段,如果有任何问题都可以给我评论留言 视频资源联系QQ:1731765178(掘金杨)