docker命令

帮助命令

docker version 显示docker的版本信息

docker info 显示docker的系统信息

docker 命令 --help 帮助命令

镜像命令

docker images 查看本地主机上的镜像

docker search 搜索镜像

docker pull 镜像名[:tag] 下载镜像

docker rmi 删除镜像(docker rmi -f $(docker images -aq) 删除所有镜像 )

容器命令

exit 直接容器停止并退出

ctrl+P+Q 容器不停止退出

docker run [可选参数] Images 新建容器并启动

--name="name"

-d 后台方式运行

-it 交互方式运行

-p 指定容器的端口 -p 8080:8080

-p 主机端口:容器端口 #主机端口映射到容器端口

-p 容器端口

容器端口

docker ps 列出正在运行的容器

-a 列出历史运行过的容器

-n=个数 显示最近创建过的几个容器

-q 只显示容器编号

docker rm 删除容器,不能删除正在运行的容器,强制删除-f

docker rm -f $(docker ps -aq) 删除所有镜像

docker ps -a -q | xargs docker rm 删除所有容器

docker stop 停止当前正在运行容器

docker start 启动容器

docker restart 重启容器

docker kill 强制停止容器

常用其他命令

后台启动:

docker run -d 镜像名 #通过镜像启动容器,但是这样操作会发现容器立即停止了

容器使用后台运行,必须要有一个前台进程,docker发现没有前台应用,就会立即停止

容器发现自己没有提供服务,就会立即停止,就是没有程序了

查看日志:

docker logs -tf --tail 10 容器 #查看10条日志,可能会发现没有日志

自己编写一段shell脚本

查看容器中的进程信息:

docker top

查看镜像的元数据:

docker inspect

进入当前正在运行的容器:

通常容器都是使用后台方式运行的

docker exec -it 容器 bashShell

docker exec -it c95e353a67a5 /bin/bash

docker attach 容器id

docker exec 进入容器后开启一个新的终端,可以在里面操作

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

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

docker cp 容器id:容器内的路径 目的主机路径

先在自己的home界面ls,没有456.java

进入容器,在容器的home界面创建456.java,然后退出容器,将此文件拷贝到主机的/home界面上,然后验证ls,拷贝成功

(拷贝是一个手动过程,之后使用卷的技术可以实现自动同步)

汇总部分命令

得到一份完整的命令列表 docker

启动docker systemctl start docker

查看docker并验证是否安装成功 docker --version

docker run hello-world

设置docker开机自动启动 systemctl enable docker

禁用docker守护进程开机启动 systemctl disable docker

以非root用户管理docker

sudo groupadd docker #创建docker组

sudo usermod -aG docker 用户名 #向docker组中添加用户

uname -a 显示操作系统的信息

cat /etc/issue 显示当前操作系统发行版信息

docker images 列出本地主机上的镜像

docker images -a(--all) 列出本地所有的镜像(含中间镜像层,默认情况下过滤掉中间镜像层)

docker images -f(--filter) 过滤镜像(还可以与since和before组合进行过滤)

docker images -q(--quiet) 只显示镜像ID

docker images --no-trunc 显示完整的镜像ID

docker images ubuntu --digests 显示镜像摘要值

docker pull ubuntu:14.04 拉取镜像

docker rmi$(docker images -f dangling=true -q) 删除无标签的所有镜像

docker tag 要命名的镜像 名称 #设置镜像标签,也就是给镜像添加一个名称,名称组件通常包括命名空间和仓库名称

一个完整的镜像名称:[主机名:端口]/命名空间/仓库名称:[标签]

docker inspect [-f(--format)] ubuntu 显示镜像(可以是容器)的详细信息,可使用-f显示特定内容

docker history ubuntu 查看镜像(不可以是容器)的构建历史,层次信息

docker history --no-trunc ubuntu 查看完整信息

docker search ubuntu 查找镜像

docker rmi [选项] ubuntu 删除镜像(如果一个镜像对应了多个标签,只有当最后一个标签被删除时,镜像才真正被删除)-f:删除与该ID匹配的所有镜像 --no-prune:表示不删除没有标签的父镜像

docker save --output hello-world.tar hello-world 将镜像导出到归档文件中,也就是将镜像保存到本地 ls -sh hello-world.tar 可以显示出归档文件

docker ps -a 列出本地主机上的所有容器列表(COMMAND表示容器启动时执行的命令)

docker ps --no-trunc 列出完整的容器ID

docker ps -s 可以查看容器的大小(第一个值表示容器可写层当前所用数据大小,第二个值是虚拟大小,表示该容器所用的只读镜像的数据量加上容器的可写层的和)

docker rename 现有名称 重命名名称 #为容器重命名

docker attach 将本地的标准输入、标准输出和错误流附加到正在运行的容器上,就是连接到正在运行的容器,进入容器

要连接的容器必须运行

root@ubuntu:/home# docker run -d --name centostest centos /usr/bin/top -b
2d36c132cdb8b42cecbdd997c6b71e174c3da45ed1985c845b2bf01d3e2ebcee

打开另一个终端:

wusa@ubuntu:~/Desktop$ docker attach centostest


top - 07:43:36 up 1 day,  7:01,  0 users,  load average: 0.87, 0.32, 0.17
Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.1 us,  1.5 sy,  0.0 ni, 96.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3876.0 total,   1114.3 free,   1168.8 used,   1592.9 buff/cache
MiB Swap:    923.3 total,    923.3 free,      0.0 used.   2453.4 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      1 root      20   0   48996   3668   3132 R   0.0   0.1   0:00.17 top

top - 07:43:39 up 1 day,  7:01,  0 users,  load average: 0.87, 0.32, 0.17
Tasks:   1 total,   1 running,   0 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.0 us,  1.2 sy,  0.0 ni, 97.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3876.0 total,   1114.3 free,   1168.7 used,   1592.9 buff/cache
MiB Swap:    923.3 total,    923.3 free,      0.0 used.   2453.4 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      1 root      20   0   48996   3668   3132 R   0.0   0.1   0:00.17 top^C

Ctrl+C不仅会退出容器,而且会使容器终止,要使容器依然运行,要在docker run加上

--sig-proxy=false

docker commit 从当前容器创建新的镜像

docker cp 在容器和本地文件系统之间复制文件和目录

docker create 创建新的容器

docker diff 检查容器创建以来其文件系统上文件或目录的更改

docker exec 从正在运行的容器中执行命令

组合-it -d表示在后台运行命令

docker export 将容器的文件系统导出为一个归档文件

docker inspect 显示一个或多个容器的详细信息

docker kill 杀死一个正在运行的容器

docker logs 获取容器的日志信息

docker ps 输出容器列表

-a(--all) 显示所有容器,包括未运行的容器

-f(--filter) 根据条件过滤显示的容器

-l(--last) 显示最近创建的容器

-n(--last int) 列出最近创建的n个容器

--no-trunc 不截断输出,显示完整的容器信息

-q(--quiet) 采用静默模式,只输出容器ID

-s(--size) 显示总的文件大小

docker pause 暂停一个或多个容器内的所有进程

docker port 列出容器的端口映射或特定的映射

docker restart 重启一个或多个容器

docker rm 删除一个或多个容器

-f(--force) 强制删除

-l(--link) 设置是否删除容器的网络连接,而保留容器本身

-v(--volumes) 设置是否删除与容器关联的卷

docker run 创建一个新容器并运行

-d(--detach) 后台运行容器,返回容器ID

-i(--interactive) 让容器的标准输入保持打开,通常与-t同时使用

-t(--tty) 为容器重新分配一个伪输入终端

-p(--publish) 设置端口映射,格式为"主机端口:容器端口"

--dns 指定容器使用dns服务器,默认和主机的dns设置一致

--name 为容器指定一个名字

--rm 容器退出时自动删除

启动容器执行命令后自动终止:

docker run ubuntu /bin/echo "it is a container"
输出:it is a container

启动容器并允许和用户交互:

用exit或ctrl+D退出

root@ubuntu:/home# docker run -it  ubuntu /bin/bash
root@627ff0d14c38:/# 

启动容器并让其以守护进程的形式在后台运行:

可以使用docker logs获取容器的输出信息

root@ubuntu:/home# docker run -d -p 80:80 --name testweb httpd
64ae6caf60c6a8080a2c9275621408d3fb284b63fae5295f8247268d3e074509

docker start 启动一个或多个已停止的容器

docker stats 显示容器资源使用统计信息的实时流

docker stop 停止一个或多个正在运行的容器

docker top 显示正在运行的容器

docker unpause 恢复一个或多个容器内被暂停的的所有进程

docker update 更新一个或多个容器配置

docker wait 阻塞一个或多个容器运行,知道容器停止运行,输出退出码

docker container prune 删除所有停止执行的镜像

systemctl daemon-reload

systemctl restart docker 重启docker

docker network connect 将容器连接到指定的网络

docker network create 创建一个网络

docker network disconnect 断开容器与指定网络的连接

docker network inspect 显示一个或多个网络的详细信息

docker network ls 显示网络列表

docker network prune 删除所有未使用的网络

docker network rm 删除一个或多个网络

docker info 查看docker主机当前使用的存储驱动

docker volume create 创建一个新的卷

docker volume ls 列出本地docker主机上的卷

docker volume inspect 查看卷的详细信息

docker volume prune 删除未被容器或者服务副本使用的全部卷

docker volume rm 删除未被使用的指定卷

相关推荐
码农飞飞1 小时前
详解Rust结构体struct用法
开发语言·数据结构·后端·rust·成员函数·方法·结构体
无忧无虑Coding5 小时前
pyinstall 打包Django程序
后端·python·django
求积分不加C6 小时前
Spring Boot中使用AOP和反射机制设计一个的幂等注解(两种持久化模式),简单易懂教程
java·spring boot·后端
枫叶_v6 小时前
【SpringBoot】26 实体映射工具(MapStruct)
java·spring boot·后端
2401_857617627 小时前
汽车资讯新趋势:Spring Boot技术解读
java·spring boot·后端
小林学习编程8 小时前
从零开始理解Spring Security的认证与授权
java·后端·spring
写bug的羊羊8 小时前
Spring Boot整合Nacos启动时 Failed to rename context [nacos] as [xxx]
java·spring boot·后端
feilieren8 小时前
SpringBoot 2.x 整合 Redis
java·开发语言·spring
2402_857589368 小时前
实验室管理效率提升:Spring Boot技术的力量
java·spring boot·后端
2401_857636399 小时前
Spring Boot图书馆管理系统:疫情中的技术实现
java·spring boot·后端