Docker指令详解

7 篇文章 4 订阅

Docker

What

Docker是一个平台,它提供哪些服务呢?任何一台装有Docker的机器上你都可以建立、发布、运行你的应用程序。

docker vs vm

Image [2]

cbb71961b936a1280d562d0d042d5432.png

Why

省事、省时、省钱

  1. 用来取代虚拟机
  2. Docker可以在几毫秒内为您提供一个沙盒环境。
  3. Docker在一台机器上起成百上千个独立的容器,有助于模拟网络,使网络建模成为一件轻而易举的事情。
  4. 由于你可以将所有系统打包进你的Docker容器,所以可以移动工作,甚至脱网离线工作。
  5. Docker强迫你记录软件依赖,方便你其他地方布局或者安装软件。
  6. 实现持续交付
  7. 减少调试开销
docker 前后

C:/Users/ADMINI~1/AppData/Local/Temp/2/enhtmlclip/Image(17).png

开发阶段、测试阶段和版本发布阶段

How

40a93901a086fba82619fc6439f53541.png

网站

https://hub.docker.com/
http://www.dockerchina.cn
https://rancher.com/

指令介绍

官方说明
https://docs.docker.com/engine/reference/commandline/docker/

镜像制作 DockerFile

安装 docker

  • 在线

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    yun install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    systemctl enable docker
    systemctl start docker
    # 下载docker-compose
    wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64
    chmod a+x /usr/local/bin/docker-compose
    
  • 离线

    • 下载资源

      sudo yum install -y --downloadonly -- downloaddir=$PWD yum-utils device-mapper-persistent-data lvm2
      yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      yum install -y --downloadonly --downloaddir=$PWD docker-ce
      wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/1.28.2/docker-compose-Linux-x86_64
      chmod a+x /usr/local/bin/docker-compose
      
    • 安装

      sudo yum install -y yum-utils device-mapper-persistent-data lvm2
      sudo yum install -y containerd*
      sudo yum install -y docker-ce*
      chmod a+x ./docker-compose
      cp ./docker-compose /usr/local/bin/
      systemctl enable docker
      systemctl start docker
      

指令

指令大全
Run
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
参数说明
–name给容器命名
-d指定容器运行于后台
-i打开STDIN,用于控制台交互
-t分配tty设备,可以支持终端登录
-u指定容器的用户
-a登录容器
-w指定容器的工作目录
-e指定环境变量
-p指定容器暴露的端口
-h指定容器的主机名
-v给容器挂载存储卷
–dns=[]指定容器的dns服务器
–privileged指定容器是否为特权容器
–rm指定容器停止后自动删除容器
镜像操作
# 拉取镜像
docker pull $image_uri
# 查看所有镜像
docker images
# 创建容器并命名
docker run -itd --name $container_name $image_uri
# 查看所有容器
docker ps
# 容器内执行指令
docker exec -it $container_name /bin/bash
# 创建容器并挂载宿主目录
docker run -itd -v /home/tmp:/home/tmp --name $container_name $image_uri
容器退出
  • 关闭退出
    exit
  • 不关闭退出
    ctrl+P+Q
  • 逐层推出(包括ssh)
    ctrl+D
查看容器日志
docker logs -t -f --tail 10 c8
参数作用
-t显示时间
-f持续增加
–tail n显示最后n条
容器信息自定义显示
docker ps --format "table {{.ID}}\t{{.Status}}\t{{.Names}}\t{{.Command}}\t{{.Ports}}\t{{.Image}}\t{{.CreatedAt}}"
查看网络信息
docker network ls
查看容器细节
docker inspect $container_name
查看指定容器的 IP
# 所有容器,或指定容器IDorName
docker inspect -f '{{.Name}}    {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'  $(sudo docker ps -aq)
查看volume数据券(含删除容器的遗留)
docker volume ls
查看不再用的volume
docker volume ls -qf dangling=true
查看容器磁盘使用情况
docker system df
清除docker相关磁盘
  • 删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。

  • docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。

  • 注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了.所以使用之前一定要想清楚吶。

docker system prune -a
清除容器日志

$ echo "" > $(docker inspect --format='{{.LogPath}}' <容器ID>)

查看容器进程
docker top $container_name
容器宿主间复制文件
docker cp $container_name:/home/t.txt ./
docker cp ./file $container_name:/home/

网络

管理
#centos <7.7 brctl
yum install bridge-util
# centos >7.7
nmcli
创建自定义网络
docker network create --subnet=172.16.0.0/16 --driver bridge $net_name
使用自定义网络
docker run ....  --net $net_name --ip 192.168.3.2  ....
#docker-compose.yml   version:>3.4
# 自定义IP,也可不指定
    networks:
      default:
        ipv4_address: 172.16.0.10
#        ipv6_address: 2001:3984:3989::10
networks:  # 与service对齐
  default:
    external:
      name: $net_name
查看网桥
nmcli c show  # 显示所有bridge
ip addr show docker0  # docker 基础网络
ip addr show $bridge_name
docker network inspect $net_name

daemon.json

https://www.cnblogs.com/golinux/p/12759674.html

查阅
man dockerd  # 列出所有参数及说明
“bip”:172.17.0.0/16”  # 指定默认网桥IP范围 管理 docke run 的容器

docker-compose

说明

https://docs.docker.com/compose/

域名解析
extra_hosts:
  - "somehost:162.242.195.82"
  - "otherhost:50.31.209.229"
指定IP
version: "3.9"

services:
  app:
    image: nginx:alpine
    networks:
      default:
        ipv4_address: 172.16.0.10
#        ipv6_address: 2001:3984:3989::10
# 创新新网络
networks:
  app_net:
    ipam:
      driver: default
      config:
        - subnet: "172.16.238.0/24"
        - subnet: "2001:3984:3989::/64"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

haifengat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值