docker学习笔记-day01:docker常用命令
Docker学习
基础概念
-
Docker为什么比VM快?
-
Docker有比VM更少的抽象层
-
Docker利用的操作系统的内核, VM需要的是guest OS
![]()
![]()
-
新建容器的时候,docker不需要想VM一样加载操作系统内核,避免引导,VM加载guest OS,启动是分钟级别的,而Docker利用的宿主机的操作系统,不需要加载操作系统的复杂过程,是秒级别的。
- Docker的常用命令
帮助命令
docker version # 显示docker版本信息
docker info # 显示docker的系统信息,包括镜像和容器数量
docker [命令] --help # 帮助命令
镜像命令
docker images
docker images # 查看所有本机上的docker镜像
-a # 显示所有
-f # 过滤
-q # 只显示ID
docker search
docker search # 搜索镜像
docker search mysql --filter=stars=3000 # 搜索stars数大于3000的
docker pull
docker pull # 下载镜像
docker pull mysql[:latest] # 如果不写版本,默认下载latest
分层下载, docker高级会讲解
docker rmi
docker rmi -f mysql:5.7 # 删除镜像,其他镜像用的层不会删除
docker rmi -f $(docker images -aq) # 删除所有镜像,循环操作删除所有镜像, docker images -aq会显示所有镜像的id
容器命令
说明:有了镜像才能创建容器, 以centos镜像为例。
docker pull centos # 下载镜像
docker run --help # docker run 命令
新建容器并启动
docker run [可选参数] images
# 参数说明
--name 容器名字
-d 以后台方式运行
-it 以交互方式运行,进入容器查看内容
-p 指定端口 主机端口:容器端口
-P 随机指定端口
查看运行的容器
docker ps # 列出正在运行的容器
docker ps -a # 列出所有的容器
-n=1 显示最近创建的容器
-q 只显示容器id
docker ps -aq --filter name=my-centos # 查看所有名字包含my-centos的容器,且只显示容器ID
docker ps --format "{{.ID}}: {{.Names}}: {{.Command}}"
更多命令可参考Docker命令-docker ps
退出容器
exit # 容器退出并停止运行
Ctrl + P + O # 值退出容器但继续运行
删除容器
docker rm 容器ID # 删除容器
docker rm $(docker ps -aq) # 删除所有容器
docker ps -a -q|xargs docker rm # 删除所有容器,利用管道命令
启动和停止容器
docker start 容器ID #
docker restart 容器ID #
docker stop 容器ID #
docker kill 容器ID # 强制停止容器
常用其他命令
后台启动的容器,必须保证容器有前台进程,否则容器会自动停止
查看日志命令
docker logs -f -t --tail 10 容器ID # 只查看最后10条的日志,--tail后面必须加数字
docker run -d centos /bin/bash -c "while true; do echo nickel;sleep 1;done;" # -c 执行命令
查看容器中的进程信息
docker top 容器ID
查看镜像的元数据
dcoker inspect --help
进入正在运行的容器
docker exec -it 容器ID /bin/bash # 进入容器开启一个新的终端
docker attach 容器ID # 进入正在执行的终端
复制容器中的文件到主机
docker cp 容器ID:/home/test.java /home/docker # 复制容器中的文件到主机的/home/docker目录下,容器可以不启动
2020-09-05 07:24:07




浙公网安备 33010602011771号