Docker 命令集合

一、Docker引擎操作

  1. 查看docker状态:systemctl status docker;

  2. 启动docker:systemctl start docker;

  3. 停止docker:systemctl stop docker;

  4. 重启docker:systemctl restart docker;

     5. 显示docker版本信息:docker version。

 

二、镜像操作

  1. 列出镜像:docker images;

参数 说明
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像ID
CREATED 镜像创建时间
SIZE 镜像大小

  2. 拉取镜像:docker pull [镜像名]:[标签TAG];

  3. 搜索镜像:docker search [关键字];

参数 说明
NAME 镜像仓库源的名称
DESCRIPTION 镜像的描述
OFFICIAL 是否docker官方发布
STARS 点赞数
AUTOMATED 自动构建

  4. 删除一个或多个镜像:docker rmi [镜像名1]:[标签TAG] [镜像名2]:[标签TAG];

  5. 将一个或多个镜像保存到tar归档文件:docker save,如:docker save images -o rhxy.tar;

    使用gzip压缩:docker save images | gizp > rhxy.tar.gz

  6. 加载镜像:docker load,如:docker load -i rhxy.tar,记得需要tag重命名。

 

三、管理容器(container)

  1. 创建交互式容器(退出容器停止):docker run -it --name=容器名 镜像名 /bin/bash;

  2. 创建守护式容器(后台运行,退出容器仍在运行):docker run -itd --name=容器名 镜像名 /bin/bash;

    A.  目录挂载:docker run -itd --name=容器名 -v 宿主机目录:容器目录 镜像名 /bin/bash;

  3. 退出容器:exit;

  4. 查看正在运行容器:docker ps

      -a:查看历史容器

参数 说明
CONTAINER ID 启动时生成的ID
IMAGE 该容器使用的镜像
COMMAND 容器启动时执行的命令
CREATED 容器创建时间
STATUS 当前容器状态
PORTS 当前容器所使用默认端口号
NAMES 启动时给容器设置的名称

  5. 登录进入容器:docker exec -it CONTAINER-ID/NAMES bash;

    执行容器目录查看命令:docker exec -it CONTAINER-ID/NAMES sh -c "ls" 或者 docker exec -it CONTAINER-ID/NAMES ls 或者 docker exec -d CONTAINER-ID/NAMES ls;

    注意:-d代表在后台运行命令,-t代表分配一个伪TTY,使用docker exec执行mariadb数据库查询不能加这些参数,否则无法获取内容或者报一些错误。

       bash支持回退键,sh不支持,会当做命令打印出来

  6. 启动一个或多个已停止容器:docker start CONTAINER-ID | NAMES [CONTAINER-ID | NAMES...];

  7. 停止一个或多个运行中容器:docker stop CONTAINER-ID | NAMES [CONTAINER-ID | NAMES...];

  8. 重新启动一个或多个容器:docker restart CONTAINER-ID | NAMES [CONTAINER-ID | NAMES...];

  9. 查看一个或多个容器详细信息:docker inspect CONTAINER-ID | NAMES [CONTAINER-ID | NAMES...];

    查看容器的PID:docker inspect -f {{.State.Pid}} CONTAINER-ID | NAMES

  10. 查看容器日志:docker logs [--tail N] [-f] CONTAINER-ID | NAMES,注意:-f参数会使日志像tail -f 一样来输出容器内部的标准输出, --tail N表示仅列出最新N条日志

    --since  显示自某个时间(2024-06-25T09:52:00)之后的日志,若还要过滤指定字符,需加上2>&1 | grep 'xxx';

  11. 查看容器端口映射:docker port CONTAINER-ID/NAMES;

  12. 删除一个或多个容器:docker rm CONTAINER-ID | NAMES [CONTAINER-ID | NAMES...];

  13. 文件拷贝:不支持通配符星号(*),可以用点(.)替换,用于拷贝目录下所有文件

      文件从宿主机复制到容器:docker cp 需要复制的文件或目录 容器名称: 容器目录;

      文件从容器拷贝到宿主机:docker cp 容器名称: 容器目录  需要复制的文件或目录 ;

  14. 标记镜像:docker tag [源镜像名]:[标签TAG] [目标镜像名]:[标签TAG];

  15. 推送镜像:docker push [目标镜像名]:[标签TAG];

  16. 列出镜像历史:docker history;

 

四、集群管理(swarm)

  1. 初始化一个swarm集群:docker swarm init [options];

  2. 作为节点或管理器加入集群:docker swarm join  [options] host:port;

  3. 管理用于加入集群的令牌:docker swarm join-token worker|manager;

  4. 离开swarm集群:docker swarm leave;

  5. 更新swarm集群:docker swarm update;

  6. 其他:docker swarm --help;

  7. 查看集群信息:docker info;

 

五、管理集群中节点(node)

  1. 列出swarm集群中节点:docker node ls;

   2. 显示一个或多个节点的详细信息:docker node inspect container;

   3. 更新节点元数据:docker node update [option] node;

    添加节点标签:docker node update --label-add rabbitmq-1=true rws-cache1;

    删除节点标签:docker node update --label-rm rabbitmq-1=true rws-cache1;

    添加节点角色:docker node update --role manager rws-cache1;

   4. 查看节点中的Task任务:docker node ps;

   5. 其他:docker node --help;

 

六、管理服务(service)

   1. 创建一个服务:docker service create [options];

   2. 显示一个或多个服务的详细信息:docker service inspect --pretty  [服务名];

   3. 获取服务的日志:docker service logs [服务名];

   4. 设置服务的实例数量:docker service scale [服务名=数量];

   5. 其他:docker service --help;

 

七、管理网络(network)

  1. 创建一个网络:docker network create [option] NETWORK;

  2. 显示一个或多个网络的详细信息:docker network inspect [option] NETWORK [NETWORK1...];

  3. 列出网络:docker network ls [option] ;

  4. 将容器连接到网络:docker network connect [option] NETWORK CONTAINER;

  5. 删除一个或多个网络:docker network rm NETWORK [NETWORK1...];

  6. 其他:docker network --help;

 

八、多服务管理和部署(stack)

  1. 部署或更新服务:docker stack deploy -c 文件名(stack).yml 编排服务名(STACK);

  2. 列出Swarm集群中所有stack:docker stack ls;

  3. 移除Swarm集群中某个STACK:docker stack rm STACK;

  4. 其余:docker stack --help;

 

九、数据卷(volume)

       1. 创建一个卷:docker volume create,如:docker volume create --driver local \    --opt type=nfs \    --opt o=addr=192.168.1.1,rw \    --opt device=:/data/sql \ --name rhxy_sql(该举例命令只是创建了一个挂载目录,并未在机器上执行挂载命令);

  2. 查看所有卷:docker volume ls;

  3. 查看某一卷信息:docker volume inspect volume1;

  4. 强制删除某一卷:docker volume rm volume1;

 

十、其他

  1. 查看WEB容器环境变量:先执行docker exec -it web bash,然后执行env命令;

  2. 监控容器消耗资源:docker stats,默认每秒刷新一次;

    CONTAINER ID:短格式显示容器ID

    NAME:容器名

    CPU %:CPU的使用情况;

    MEM USAGE / LIMIT:当前使用的内存和最大可以使用的内存;

    MEM %:以百分比的形式显示内存使用情况;

              NET I/O:容器通过其网络接口发送和接收的数据量;

              BLOCK I/O:容器从主机上的块设备读取和写入的数据量;

    PIDS:容器创建的进程或线程PID号。

   3. 显示docker磁盘使用情况:docker system df,删除未使用的数据:docker system prune;

 

可参考:Docker 官方文档

               Docker 容器使用

    Docker命令中文开发手册

posted @ 2020-02-03 10:22  如幻行云  阅读(191)  评论(0编辑  收藏  举报