Fork me on GitHub

docker学习笔记-day01:docker常用命令

Docker学习

学习视频

基础概念

  1. Docker为什么比VM快?

    1. Docker有比VM更少的抽象层

    2. Docker利用的操作系统的内核, VM需要的是guest OS

新建容器的时候,docker不需要想VM一样加载操作系统内核,避免引导,VM加载guest OS,启动是分钟级别的,而Docker利用的宿主机的操作系统,不需要加载操作系统的复杂过程,是秒级别的。

  1. 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

posted @ 2020-09-05 07:25  Catalinas  阅读(127)  评论(0)    收藏  举报