镜像命令

docker imager 查看所有本地的主机上的镜像

  1. [root@VM_0_12_centos ~]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. codercom/code-server latest 1d072712b3e0 5 months ago 637MB
  4. # 解释
  5. REPOSITORY 镜像仓库源
  6. TAG 镜像的标签
  7. IMAGE ID 镜像的Id
  8. CREATED 镜像的创建时间
  9. SIZE 镜像的大小
  10. # 可选项
  11. -a, --all # 列出所有镜像
  12. -q, --quiet # 只显示镜像的id

docker search 搜索镜像

  1. # --filter=STARS=3000 搜索出来的镜像stars >= 3000
  2. docker search mysql --filter=STARS=3000

docker pull 下载镜像

  1. # 分层下载 liunx 的量化文件系统
  2. docker pull mysql # 如果不写tag,默认就是 latest
  3. Using default tag: latest
  4. latest: Pulling from library/mysql
  5. d121f8d1c412: Downloading 13.67MB/27.09MB
  6. f3cebc0b4691: Download complete
  7. 1862755a0b37: Download complete
  8. Digest: sha256:e1bfe11693ed2052cb3b4e5fa356c65381129e87e38551c6cd6ec532ebe0e808
  9. Status: Downloaded newer image for mysql:latest
  10. docker.io/library/mysql:latest # 真实地址
  11. # 等价于它
  12. docker pull mysql
  13. docker pull docker.io/library/mysql:latest
  14. # 指定版本下载
  15. docker pull mysql:5.7

docker rmi 删除镜像

  1. docker rmi -f d121f8d1c412 # 通过镜像id删除指定的容器
  2. docker rmi -f $(docker images -aq) # 删除所有

容器命令

说明:有了镜像才可以创建容器

docker run 新建容器并启动

  1. docker run [可选参数] image
  2. # 参数说明
  3. --name="Name" 容器名字 tomcat01 tomcat02, 用来区分容器
  4. -d 后台方式运行
  5. -it 使用交互方式运行,进入容器查看内容
  6. -p 指定容器的端口 -p 8080:8080
  7. -p ip:主机端口:容器端口
  8. -p 主机端口:容器端口 (常用的)
  9. -p 容器端口
  10. 容器端口
  11. -P 随机指定端口
  1. docker pull centos
  2. docker run -it centos /bin/bash

docker ps 列出所有在运行的容器

  1. docker ps
  2. -a # 代理历史运行的容器
  3. -n=? # 显示最近创建的容器
  4. -q # 显示容器的编号

退出容器

  1. exit # 直接容器停止并退出
  2. Ctrl + p + q # 容器不停退出

docker rm 删除容器

  1. docker rm 容器id # 删除指定的容器(不能删除正在运行的容器)
  2. docker rm -f 容器id # 可强制删除
  3. docker rm -f $(docker ps -aq) # 删除所有的容器
  4. docker rm -a -q|xargs docker rm # 删除所有的容器

启动和停止容器的操作

  1. docker start 容器id
  2. docker restart 容器id
  3. docker stop 容器id
  4. docker kill 容器id # 强制停止当前容器

常用的其他命令

后台启动容器

docker run -d 镜像名

docker run -d centos
# 问题docker ps, 发现centos 停止了
# docker 容器使用后台运行,就必须要有一个前台进程,docker发没有应用,就会自动停止
# nginx 容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了

查看日志

# 显示日志
-tf                        # 显示日志
--tail number # 要显示的日志条数
docker logs -f -t --tall 100 容器,没有日志

查看容器中进程信息ps

docker top [id]

查看镜像的元数据

docker inspect [id]

进入当前正在运行的容器

# 方式一
docker exec -it 容器id bashShell    # 开启新的终端
# 方式二
docker attach 容器id                          # 正在运行的命令行

从容器内拷贝文件到主机上

docker cp 容器id:/home/test.java /home

查看docker的运行状态

docker stats

image.png