Docker常用命令

本文最后更新于:1 个月前

Docker本身的一些命令

我是有手动在服务器上部署项目的一些经验的,从一开始的上传编译好的Jar包,再到后来的在服务器上使用Git拉取源代码,在服务器上使用Maven编译成Jar包,当时还是一个服务器上又是项目,又是Redis,又是Mysql的,买不起那么多的服务器,也能跑。一开始的Jar包,更新项目是一件非常麻烦的事,当时对SpringBoot的配置还不是很了解,导致有时就是直接直接编译开发环境就部署上去了🤣🤣,
每次更新项目的时候都是非常痛苦的,再后来在想到可以在服务器上使用Git拉取更新后的代码,然后使用Maven编译项目,这个时候其实我感觉效率已经可以了。
目前了解Docker,貌似还可以简化部署项目,试试看一下咯。

首先我们看一下Docker常用命令的总结图
常用命令图

希望你能看懂

DockerHub,可以当成GitHub,一个存的是代码,一个是Docker镜像。

DockerHub

Docker官网,学技术,一般官网是最好的地方,包括文档。

Docker官网

基本命令

1
2
3
4
5
6
7
8
9
10
# 查看docker的版本
docker version

# 查看docker的详细信息
docker info

# 查看docker的命令,这个是一个万能的命令,可以 docker images --help 查看关于images的所有附加操作

docker --help

镜像命令

1
2
# 查看docker镜像
docker images

image

  • REPOSITORY:镜像的仓库源
  • TAG:镜像的标签
    • 同一个仓库源可以有多个TAG,表示这个仓库源的不同版本,我们使用REPOSITORY:TAG来定义不同的镜像。如果不指定一个镜像的版本标签,例如只使用tomcat,docker将默认使用tomcat:latest镜像,也就是最新版
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 列出本地所有镜像
docker images -a

# 只显示镜像ID
docker images -q

# 显示镜像的摘要信息
docker images --digests

# 显示完整的镜像信息
docker images --no-trunc

# 从DockerHub上查找nginx镜像
docker search nginx

示意图

  • STARS:关注度
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 从Docker Hub上查找关注度大于30的nginx镜像
docker search -s 30 nginx

# 从Docker Hub上下载nginx镜像。等价于:docker pull nginx:latest
docker pull nginx

# 提交容器使之成为一个新的镜像。如:docker commit -m "新的nginx" -a "lizq" f9e29e8455a5 mynginx:1.2
docker commit -m "提交的描述信息" -a "作者" 容器ID 要创建的目标镜像名称:[标签名]

# 从Docker中删除hello-world镜像
docker rmi hello-world

# 从Docker中强制删除hello-world镜像
docker rmi -f hello-world

# 从Docker中强制删除hello-world镜像和nginx镜像
docker rmi -f hello-world nginx

# 通过docker images -p查询到的镜像ID来删除所有镜像
docker rmi -f $(docker images -p)

容器命令

重点!!!

1
2
# 根据镜像新建并启动容器。IMAGE是镜像ID或镜像名称
docker run [OPTIONS] IMAGE

OPTIONS说明:

  • –name=“容器新名字”:为容器指定一个名称
  • -d:后台运行容器,并返回容器ID,也即启动守护式容器
  • -i:以交互模式运行容器,通常与-t同时使用
  • -t:为容器重新分配一个伪输入终端,通常与-i同时使用
  • -P:随机端口映射
  • -p:指定端口映射,有以下四种格式:
    • ip:hostPort:containerPort
    • ip::containerPort
    • hostPort:containerPort
    • containerPort
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# 列出当前所有正在运行的容器
docker ps

# 列出所有的容器
docker ps -a

# 列出最近创建的容器
docker ps -l

# 列出最近创建的3个容器
docker ps -n 3

# 只显示容器ID
docker ps -q

# 显示当前所有正在运行的容器完整信息
docker ps --no-trunc

# 退出并停止容器
exit

# 只退出容器,不停止容器
Ctrl+p+q

# 启动容器
docker start 容器ID或容器名称

# 重新启动容器
docker restart 容器ID或容器名称

# 停止容器
docker stop容器ID或容器名称

# 强制停止容器
docker kill 容器ID或容器名称

# 删除容器
docker rm 容器ID或容器名称

# 强制删除容器
docker rm -f 容器ID或容器名称

# 删除全部容器
docker rm -f $(docker ps -aq)

# 查看容器日志 如:docker logs -f -t --since=”2018-09-10” --tail=10 f9e29e8455a5
docker logs -f -t --since --tail 容器ID或容器名称

 -f : 查看实时日志
 -t : 查看日志产生的日期
 --since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志
 --tail=10 : 查看最后的10条日志

# 查看容器内运行的进程
docker top 容器ID或容器名称

# 查看容器内部细节
docker inspect 容器ID或容器名称

# 进到容器内 这个和下面是有区别的,这个进入是进入已经打开的命令行,下面的是新建一个命令行
docker attach 容器ID

# 进到容器内 常用格式为docker exec -it xxxx(容器ID) /bin/bash 进入容器并打开新的命令行
docker exec 容器ID

从容器内拷贝文件到宿主机,如:docker cp f9e29e8455a5:/tmp/yum.log /root
docker cp 容器ID:容器内的文件路径 宿主机路径

Docker概念理解

docker是一个容器化技术。百度一些图片便于理解

docker与传统虚拟机的区别

docker整体架构

封面原图

也是结束了呢,

肉骨茶 骨汤屋


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!