Docker常用命令

一、Docker操作

docker --help帮助命令
docker info查看Docker系统信息
docker version查看Docker版本信息
systemctl status dockercentOs7查看docker服务信息
systemctl restart dockercentOs7重启docker服务
docker system df查看本地镜像占用空间

二、容器操作

2.1 容器生命周期管理

查看容器信息 docker ps

–no-trunc:不对输出进行截断操作,此时可以看到完整的COMMAND,CONTAINER ID
-a 显示所有容器,包括未运行的容器
-s:列出容器的文件大小(容器增加的大小/容器的虚拟大小)
-q:仅列出CONTAINER ID 字段,此命令常用于批量操作的参数,
如批量停止所有容器 docker stop docker ps -a -q
-l: 显示最后一个运行的容器(无论该容器目前处于什么状态)
docker ps -n 数量x:显示最后 x 个运行容器,当x为1时和 -l 含义相同。(无论该容器目前处于什么状态)
-f :使用过滤器来过滤输出,目前支持过滤器:

  • id (容器的id)
  • label
  • name(容器名称)
  • exited (整数-容器退出状态码,只有在使用-all才有用)
  • status 容器状态(created,restarting,running,paused,exited,dead)
  • ancestor 过滤从指定镜像创建的容器,如果指定的是某个父镜像,则过滤出的结果包含以此镜像构建的子镜像创建的容器,不仅仅是以该镜像直接创建的容器
  • before (容器的名称或id),过滤在给定id或名称之后创建的容器
  • isolation (default process hyperv) (windows daemon only)
  • volume (数据卷名称或挂载点),–过滤挂载有指定数据卷的容器
  • network(网络id或名称),过滤连接到指定网络的容器

筛选查询
docker ps |grep job 筛选容器名为job容器

docker ps的结果说明

CONTAINER ID:容器的唯一标识符号,自动生成。
IMAGE :创建容器使用的镜像名称。
COMMAND:运行容器时的命令。
CREATED:容器创建的时间。
STATUS:容器的运行状态,

  • Up 17 hours 指容器已运行17小时。
  • created(已创建)
  • restarting(重启中)
  • running(运行中)
  • removing(迁移中)
  • paused(暂停)
  • exited(停止)
  • dead(死亡)

PORTS:容器开放的端口信息。
NAME:容器的别名,在运行容器执行docker run 时可使用–name进行指定。

PORTS中0.0.0.0:32768->80/tcp 这代表两层含义 1:容器中开放了80端口,使用TCP协议,对应宿主机使用32768端口进行映射。此时可以使用"宿主机IP:32768" 对容器80端口提供的服务进行访问

实例
docker ps -f status=exited
docker ps -f ancestor=597ce1600cf4 -f status=exited -a
docker rm ‘docker ps -f status=exited --format {{.ID}}’ 删除所有状态为exited的容器

根据镜像创建一个容器并运行

docker run [OPTIONS] IMAGE [COMMAND][ARG…]
-d 后台运行容器
-p [host端口]:[容器端口] 容器内端口映射到主机
-v [host目录]:[容器目录] 给容器挂载一个host目录
–name [容器名称] 给容器指定一个名字
实例
运行一个最新版本nginx容器
docker run --name mynginx -d nginx:latest
docker run -p 80:80 -v /data:/data -d nginx:latest

根据容器生成镜像

** docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] **
参数说明
-a 作者
-m 提交信息
实例:docker commit -a hukl -m “test commit” containerId mycentos:1.4

启动一个或多个已经被停止的容器

docker start [OPTIONS] CONTAINER [CONTAINER…]
实例docker start mynginx

停止一个运行中的容器

docker stop [OPTIONS] CONTAINER [CONTAINER…]
实例docker stop mynginx

重启一个运行中的容器

docker restart [OPTIONS] CONTAINER [CONTAINER…]

杀掉一个运行中的容器

docker kill[OPTIONS] CONTAINER [CONTAINER…]
-s :向容器发送一个信号
实例docker kill -s KILL mynginx

延伸:stop与kill的区别
docker stop: Stop a running container (send SIGTERM, and then SIGKILL after grace period)
docker kill: Kill a running container (send SIGKILL, or specified signal)
docker stop,支持“优雅退出”。先发送SIGTERM信号,在一段时间之后(10s)再发送SIGKILL信号。Docker内部的应用程序可以接收SIGTERM信号,然后做一些“退出前工作”,比如保存状态、处理当前请求等。
docker kill,发送SIGKILL信号,应用程序直接退出。

删除一个或多个容器

docker rm[OPTIONS] CONTAINER [CONTAINER…]
-f :通过 SIGKILL 信号强制删除一个运行中的容器。
-v :删除与容器关联的卷。
实例docker rm -f mynginx

暂停容器中所有的进程

docker pause [OPTIONS] CONTAINER [CONTAINER…]
实例docker pause mynginx

恢复容器中所有的进程

docker unpause [OPTIONS] CONTAINER [CONTAINER…]
实例docker unpause mynginx

2.2 容器运维操作

在运行的容器中执行命令

docker exec[OPTIONS] CONTAINER COMMAND [ARG…]
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
实例
docker exec -it 3a3afa942911 /bin/bash**

退出容器

退出容器,容器还运行:先按ctrl+P,再按ctrl+Q
退出容器后,容器销毁,ps查不到:ctrl+D或者exit

获取容器的日志

docker logs [OPTIONS] CONTAINER
-f , --follow: 跟踪日志输出
-t : 显示时间戳
–since :显示某个开始时间的所有日志
–details 显示更多的信息
–tail string 从日志末尾显示多少行日志, 默认是all
–until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
实例
实时查看
docker logs -f -t mynginx
查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since=“2018-02-08” --tail=100 CONTAINER_ID
查看最近30分钟的日志:
docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
docker logs -t --since=“2018-02-08T13:23:37” CONTAINER_ID
查看某时间段日志:
docker logs -t --since=“2022-02-18T09:50:05” --until “2022-02-18T09:50:06” docker-cmrm-czjob

列出指定的容器的端口映射

或者查找将PRIVATE_PORT NAT到面向公众的端口
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
实例
docker port mynginx
docker port mynginx2 80

2.3 容器命令

从容器创建一个新的镜像。

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
实例
docker commit -a ‘Gideon’ -m “my Nginx” mynginx nginx:v1docker images #查看最新生成的image

容器与主机之间的数据拷贝

docker cp[OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
实例docker cp /t.txt mynginx:/

检查容器里文件结构的更改。

docker diff[OPTIONS] CONTAINER
实例docker diff mynginx

三、镜像操作

远程仓库docker hub镜像查询

docker search [OPTIONS] TERM
例如:docker search -f stars=50 nginx
查询nginx镜像,并且stars大于等于50的镜像

从远程仓库拉取镜像

** docker pull [OPTIONS] NAME[:TAG|@DIGEST] **
例如docker pull nginx 等价于
docker pull nginx:latest

推送镜像到远程仓库

** docker push [OPTIONS] NAME[:TAG] **
docker push nginx:latest

保存一个或多个镜像为一个压缩包

docker save [OPTIONS] IMAGE [IMAGE…]
-o 保存输出为一个文件
docker save -o nginx.tar nginx:latest

加载压缩包为镜像

docker load [OPTIONS]
-i 从压缩文件中读取
docker load -i nginx.tar

从Dockerfile构建镜像

docker build [OPTIONS] PATH | URL | -

查看本地镜像

docker images [OPTIONS][REPOSITORY[:TAG]]
-a :列出本地所有的镜像
-q :只显示镜像id
实例
docker images nginx #查看所有的nginx镜像

删除本地一个或多少镜像

docker rmi [OPTIONS] IMAGE [IMAGE…]
-f :强制删除;
实例docker rmi -f nginx:v1

标记本地镜像,将其归入某一仓库

docker tag [OPTIONS] IMAGE[:TAG][REGISTRYHOST/][USERNAME/]NAME[:TAG]
实例docker tag nginx:latest
nginx:v2docker images # 查看结果
实例:
docker tag registry 10.1.18.202:5000/registry
docker push 10.1.18.202:5000/registry

虚悬镜像

虚悬镜像指的是镜像名和标签为的镜像,一般没什么价值
docker image ls -f dangling=true 列出虚悬镜像
docker image prune 删除虚悬镜像

四、仓库操作

登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

docker login [OPTIONS][SERVER]
-u :登陆的用户名
-p :登陆的密码
实例docker login -u 用户名 -p 密码

从镜像仓库中拉取或者更新指定镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
-a :拉取所有 tagged 镜像
–disable-content-trust :忽略镜像的校验,默认开启
实例docker pull nginx

将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

docker push [OPTIONS] NAME[:TAG]
–disable-content-trust :忽略镜像的校验,默认开启
实例docker push nginx:v2

从Docker Hub查找镜像

docker search [OPTIONS] TERM
–no-trunc :显示完整的镜像描述;
-s :列出收藏数不小于指定值的镜像。
–automated :只列出 automated build类型的镜像;
实例docker search nginx

docker network

查看网络信息:docker network ls
创建网络:docker network create [OPTIONS] NETWORK
–driver string 管理网络的驱动程序(默认“bridge”)
–gateway string 主子网的IPv4或IPv6网关
–subnet string CIDR格式的子网,表示网段
–attacheable 启用手动容器连接
docker network create br0
docker network create --driver=overlay --gateway 1.19.173.1 --subnet 1.19.173.0/24 --attachable br1
容器连网络
docker network connect [OPTIONS] NETWORK CONTAINER
容器脱离网络
docker network connect [OPTIONS] NETWORK CONTAINER
查看某个网络信息
docker network inspect NETWORK
删除网络
docker network rm br0
删除所有未使用的网络
docker network prune

docker swarm

主节点上初始化manager
docker swarm init
子节点加入集群,在子节点执行:
docker swarm join --token SWMTKN-1-5dedtjhyok409nnep66slq2o4t1foi0icacbo42n5yh3rw9g8f-01s3puooagmyssx9a21qkkd1z 10.1.11.173:2377

说明:查看token方法:在主节点执行
docker swarm join-token -q worker
加入成功,在主节点查看
docker node ls

配置镜像仓库:

编辑镜像仓库配置文件,修改镜像仓库地址
vi /etc/docker/daemon.json
{“insecure-registries”:[“10.1.18.202:5000”]}
重启docker
systemctl restart docker

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值