首页
  • 监控

    • grafana
    • prometheus
  • 学习笔记

    • 《核心系统命令实战》
    • 《MySQL 是怎样运行的:从根儿上理解 MySQL》
    • 《Ansible权威指南》
  • 博客搭建
  • git
  • python
  • 友情链接
  • 文档编写规范
  • 我用过的电脑
  • 喷涂相关
  • 每日一溜
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

小刘说

砥砺前行
首页
  • 监控

    • grafana
    • prometheus
  • 学习笔记

    • 《核心系统命令实战》
    • 《MySQL 是怎样运行的:从根儿上理解 MySQL》
    • 《Ansible权威指南》
  • 博客搭建
  • git
  • python
  • 友情链接
  • 文档编写规范
  • 我用过的电脑
  • 喷涂相关
  • 每日一溜
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • zabbix

  • docker

    • docker离线安装+升级
    • docker-compose离线安装+升级
    • docker常用命令
    • kubernetes

    • harbor

    • mysql

    • nexus

    • jenkins

    • elasticsearch

    • 学习笔记

    • apache2.2升级2.4
    • heredoc(cat EOF)
    • Rocky linux 9 初始化
    • 运维
    • docker
    小刘
    2022-08-17
    目录

    docker常用命令

    # docker常用命令

    # 镜像命令(image)

    # docker search 查找某个镜像
    --no-trunc # 显示完整的镜像描述
    -s # 列出收藏数不小于指定值的镜像
    --automated # 只列出 automated build类型的镜像
    
    1
    2
    3
    # docker pull 拉取镜像
    docker pull 镜像名字[:TAG]
    
    1

    # docker image

    # docker image ls 查看本地镜像
    -a # 显示所有镜像
    --no-trunc # 显示完整的镜像描述
    -q # 只查看镜像ID
    
    1
    2
    3
    # docker image inspect 镜像详细信息查看
    docker image inspect 镜像名字[:TAG]
    
    1
    # docker image save/load 镜像导入/导出
    docker image save 镜像ID > /tmp/centos.tar
    docker image load -i /tmp/centos.tar
    docker image tag 镜像ID centos:8.4
    
    1
    2
    3
    # docker image rm 删除镜像
    docker image rm -f 镜像ID # 删除单个镜像
    docker image rm -f 镜像ID[:TAG] 镜像ID[:TAG] # 删除单个镜像
    docker image rm -f $(docker images -qa) # 删除全部镜像
    docker image rm $(docker images -a | awk '/^<none>/ { print $3 }') -f # 删除标签为<none>的镜像
    
    1
    2
    3
    4

    # 容器命令(container)

    # docker run 运行容器
    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
    -d: 后台运行容器,并返回容器ID;
    -i: 以交互模式运行容器,通常与 -t 同时使用;
    -P: 随机端口映射,容器内部端口随机映射到主机的端口
    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    --name="nginx-lb": 为容器指定一个名称;
    --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
    --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
    -h "mars": 指定容器的hostname;
    -e username="ritchie": 设置环境变量;
    --env-file=[]: 从指定文件读入环境变量;
    --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
    -m :设置容器使用内存最大值;
    --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
    --link=[]: 添加链接到另一个容器;
    --expose=[]: 开放一个端口或一组端口;
    --volume , -v: 绑定一个卷
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    示例:

    # 交互式容器操作
    docker run -it centos /bin/bash # 交互运行容器,并执行/bin/bash命令
    两种退出方式
    exit 或 ctrl + D 容器停止退出
    ctrl + P + Q 容器不停止退出
    #守护容器
    docker run -it -d -v /tmp/nginx:/etc/nginx/ --name nginx_master -p 81:80 -v /tmp/nginx/log:/var/log/nginx nginx # 以后台模式运行nginx,并把容器内80端口映射到宿主机81端口。映射本地目录到容器内,容器命名为 nginx_master
    
    1
    2
    3
    4
    5
    6
    7

    端口映射:

    容器中可以运行一些应用,通过-p或-P参数来指定端口映射。

    -p hostPort:containerPort
    -p ip:hostPort:containerPort 
    -p ip::containerPort(随机端口:32768-60999)
    -p hostPort:containerPort/udp
    
    1
    2
    3
    4

    宿主机的一个端口只能映射到容器内部的某一个端口上,比如:8080->80之后,就不能8080->81 容器内部的某个端口可以被宿主机的多个端口映射,比如:8080->80,8090->80,8099->80

    1. 选择一个端口进行映射

    -p docker会选择一个具体的宿主机端口映射到容器内部开放的网络端口上。 -P docker会随机选择一个宿主机端口映射到容器内部开放的网络端口上。

    docker run -it -d -p 81:80 nginx # 容器内80端口映射到宿主机81端口
    docker run -it -d -P nginx # 容器内开放的端口映射到宿主机随机端口
    
    1
    2

    docker-1 2. 启动时,绑定外部ip和端口 可以看到如果绑定了ip地址的话,就只能从绑定ip地址访问

    docker-2

    1. 启动时可以指定 TCP 还是 UDP 协议进行访问

    docker-3

    数据卷容器:

    集中管理集群中,大批量的容器都需要挂载相同的多个数据卷时,可以采用数据卷容器进行统一管理

    mkdir -p /opt/volume1 /opt/volume2 # 新建目录
    docker run -it -d -p 81:80 -v /opt/volume1:/opt/volume1 -v /opt/volume2:/opt/volume2 --name volume_test nginx # 新建数据卷
    docker run -it -d --volumes-from volume_test --name nginx_master -p 82:80 nginx # 挂载数据卷
    docker run -it -d --volumes-from volume_test --name nginx_salve -p 83:80 nginx # 挂载数据卷
    
    1
    2
    3
    4
    # docker start/stop/restart/kill
    docker start 容器ID或容器名
    docker stop 容器ID或容器名
    docker restart 容器ID或容器名
    docker kill 容器ID或容器名
    
    1
    2
    3
    4
    # docker rm 删除容器
    docker rm 容器ID  -f
    # 一次性删除多个容器
    docker rm -f $(docker ps -a -q)
    docker ps -a -q | xargs docker rm
    
    1
    2
    3
    4
    # docker attach 进入容器
    docker attach 容器ID或容器名
    
    1
    # docker exec 容器内运行命令

    相当于在已有工作容器中生成子进程,做登录.可以用于进行容器的调试,退出时也不会影响到当前容器

    docker exec -it 容器ID或容器名 /bin/bash
    
    1
    # docker container/docker ps 查看容器
    docker container ls -a = docker ps -a
    
    1
    # docker logs 查看容器日志
    -f : 跟踪日志输出
    -t : 显示时间戳
    --tail :仅列出最新N条容器日志
    
    1
    2
    3

    示例:

    docker logs -t -f 容器ID或容器名
    docker logs --since='2021-11-11' --tail=10 容器ID或容器名 # 查看从2021-11-11号之后的最后10条日志
    
    1
    2
    # docker cp 拷贝文件
    docker cp 容器ID:容器内路径 目的主机路径
    
    1

    示例:

    docker cp /etc/nginx/nginx.conf 容器ID或容器名:/tmp/ # 把文件拷贝到容器中
    docker cp 容器ID或容器名:/tmp/nginx.conf /tmp # 把文件从容器中拷贝出来
    
    1
    2

    # docker常用命令总结

    docker-4

    docker-5

    上次更新: 2024/05/11, 03:55:33

    ← docker-compose离线安装+升级 二进制安装高可用k8s集群(v1.25.0)→

    最近更新
    01
    kubernetes控制器-Service
    08-18
    02
    kubernetes控制器-Deployment
    08-08
    03
    kubernetes调度基础
    07-27
    更多文章>
    Theme by Vdoing | Copyright © 2023-2024 本站支持IPv6访问 本站支持SSL安全访问
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式