Docker-基础002-常用命令

学习内容总结来自B站UP主"遇见狂神说"的Docker教学视频: https://www.bilibili.com/video/BV1og4y1q7M4

Docker命令

1. 查看docker版本

docker version

显示客户端和服务端的各种版本信息

 2. 查看docker信息

docker info

显示更加详细的docker信息, 比如容器和镜像的个数, 系统内核, 网络连接, CPU等等, 可以理解为虚拟机的系统信息

 3. 查看帮助命令

# 查看docker总共有那些命令即命令简介
docker --help
# 查看具体命令的可选参数等用法
docker 命令名称 --help

镜像命令(image)

1. 查看本地的所有镜像

docker images

可选参数为:

(root@Aliyun-Alex:~)# docker images --help
Usage:    docker images [OPTIONS] [REPOSITORY[:TAG]]
List images
Options:
  -a, --all             Show all images (default hides intermediate images)
      --digests         Show digests
  -f, --filter filter   Filter output based on conditions provided
      --format string   Pretty-print images using a Go template
      --no-trunc        Don't truncate output
  -q, --quiet           Only show numeric IDs

2. 搜索docker hub上的镜像

docker search image_name
# 例如:
docker search mysql

 使用过滤参数

如只想要stars大于3000的结果: 

docker search mysql -f=stars=3000

 3. 从docker hub下载镜像

# 下载最新版
docker pull mysql
# 下载指定版本
docker pull mysql:5.7

4. 删除本地镜像

docker rmi -f 镜像名称或者ID   # 如 docker rmi mysql
docker rmi -f 镜像名称或者ID 镜像名称或者ID 镜像名称或者ID  # 删除多个镜像用空格隔开
docker rmi -f $(docker images -q)  # 将括号中搜索到的镜像全部删除

容器命令(container)

有了镜像才能创建容器, 可以理解为: 镜像就是类, 容器就是类的实例对象

这里我们先下载centos镜像:  docker pull centos 

1. 创建容器并启动

docker run [可选参数] image

# 常用参数
--name="容器名称"  给容器命名, 如centos01, centos02等等
-d                后台方式运行容器
-it               使用交互方式运行, 进入容器终端
-p                指定容器的端口
    -p 主机端口:容器端口
    -p ip:主机端口:容器端口
    -p 容器端口
    容器端口
-P                随机指定端口

测试启动并进入centos容器

docker run -it centos

 可以看到主机名称变成了一串数字(这串数字就是容器的ID), 路径也变成了根目录/, 这就是进入了centos容器

但是由于centos镜像只是留下了centos系统最基础的必需资源, 所以体积小, 但是功能可能不太完善, 一些命令也没有, 如vim, wget等

2. 退出容器

exit  # 停止容器的运行
Ctrl+p+q # 不停止容器
docker attach # 容器ID, 进入运行中容器的终端

3. 查看正在运行的容器

docker ps
docker ps -a  # 查看所有容器, 包括已经停止运行了的容器
docker ps -n=? # 显示最近的n个容器
docker ps -q # 只显示容器编号

 4. 删除容器

docker rm -f 容器名称或者ID   # 如 docker rm mysql
docker rm -f 容器名称或者ID 容器名称或者ID 容器名称或者ID  # 删除多个容器用空格隔开
docker rm -f $(docker ps -q)  # 将括号中搜索到的容器全部删除

5. 启动和停止容器

docker start 容器id  # 启动停止的容器
docker restart 容器id  # 重启容器
docker stop 容器id  # 停止正在运行的容器
docker kill 容器id  # 强制杀死正在运行的容器

 6. 后台启动容器

docker run -d 镜像名
# 如 docker run -d centos

该命令会返回一个容器ID, 但是运行 docker ps 时发现该容器并不在运行, 而是刚启动就停止了

原因是因为docker容器后台运行时, 必须要有一个对应的前台进程, 若这里加上(-it)那么就会启动一个前台进程, 若没有前台进程那么docker的机制就会自动把这个容器停止, 可以理解为垃圾回收

7. 查看日志

docker log -tf 容器ID


Usage:    docker logs [OPTIONS] CONTAINER

Fetch the logs of a container

Options:
      --details        Show extra details provided to logs
  -f, --follow         Follow log output
      --since string   Show logs since timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)
      --tail string    Number of lines to show from the end of the logs (default "all")
  -t, --timestamps     Show timestamps
      --until string   Show logs before a timestamp (e.g. 2013-01-02T13:23:37) or relative (e.g. 42m for 42 minutes)

 8. 查看容器中的进程信息

docker top 容器ID

9. 查看容器的信息

docker inspect 容器ID

10. 进入正在运行的容器

# 方式一
docker exec -it 容器ID /bin/bash

# 方式二
docker attach 容器ID

上述两者命令的区别是:

docker exec : 进入容器后开启一个新的终端

docker attach : 进入容器正在执行的终端, 不会开启新的终端

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

docker cp 容器ID:要拷贝的文件路径 本机目的路径
# 如: docker cp 16bd39b136a3:root/copy_test.py /home

 12. 将容器打包成新的镜像

docker commit -a "作者信息" -m "提交备注信息" 容器ID 目标镜像名:[TAG]
原文地址:https://www.cnblogs.com/gcxblogs/p/13377664.html