Docker一些命令记录

镜像管理

  1. 重命名

    docker tag 旧镜像名称:版本 新的名称:版本

    伪修改,不改变 id

  2. 删除

    docker rmi [参数] [镜像名称]:[版本]

    docker rmi [参数] [镜像id]

  3. 导出

    docker save [参数[-o]] [导出镜像名] [本地镜像名称]

    例如:

    docker save mysql.tar mysql:latest

    将下载镜像导出本地,做备份

  4. 导入镜像

    docker load [命令参数] [被导入压缩文件名]

    docker load < [被导入镜像亚索文件名称]

    docker load --input [被导入镜像压缩文件名称]

    举个栗子:

    docker load –input mysql.tar

  5. 镜像历史

    docker history [镜像名]:[版本]

  6. 镜像详细信息

    docker image inspect [命令参数] [镜像名称]:[镜像版本]

    docker inspect [命令参数] [镜像id]

  7. 镜像查看

    获取镜像

    cat 模板文件名.tar | docker import - [自定义镜像名]

容器管理

  1. 暂停

    docker pause [容器名]/[容器id]

  2. 取消暂停

    docker unpause [容器名]/[容器id]

  3. 重启

    docker restart [容器名]/[容器ID]

    -t、–time :设置延时,其中(s)

  4. 终止容器:强制将容器停止(建议使用 stop)

    docker kill [容器名称]/[容器id]

  5. 删除容器

    docker rm [容器名称]/[容器id]

    docker rm -f [容器名称]/[容器id]:可使用docker rm -f $(docker ps -s -p)​删除所有的容器

  6. 生产环境进入容器脚本:docker_in.sh:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/bash
    #定义进入仓库函数
    docker_in(){
    NAME_ID=$1
    PID=$(docker inspect --format {{.State.Pid}} $NAME_ID)
    nsenter --target $PID --mount --uts --ipc --net --pid
    }

    docker_in $1
  7. 镜像的构建

    docker commit -m “日志信息” -a “作者信息" [容器id] 镜像名称:版本号

    docker export [容器id] > 模板文件名.tar

    cat 模板.tar | docker import - 镜像名

  8. 日志

    docker logs [容器id]

  9. 容器信息

    docker inspect [容器名称] 查看容器信息

  10. 查看容器的端口

    docker port [容器名称]

  11. 容器的重命名

    docker rename [容器id] [新容器名称]

数据管理

  1. 数据卷容器

    docker create -v [本地目录名称] --name [容器名称] [镜像]:创建数据卷容器

    docker run –volumes-from [数据卷容器id/name] -id --name [容器名] [镜像名] [命令]

  2. 数据备份

1
2
3
4
5
6
7
# 1. 创建一个挂载数据卷容器的容器
# 2. 挂载宿主机本地目录作为备份数据卷
# 3. 将数据卷容器内容备份到宿主机本地目录挂载的数据卷中
# 4. 完成后销毁创建的容器

docker run --rm --volumes-from [数据卷容器id/name] -v[宿主机目录]:[容器目录][镜像名称] tar -zcPf /backup/data.tar.gz /data-tmp

网络管理

  1. 端口映射:

随机映射: –P

指定映射:-p

  1. 网络管理:

docker network create:创建一个网络

可选参数:

  • --gateway 设置网关
  • --subnet设置子网
  • --driver 设置网络模式

docker network connect [网络] [容器]:手动链接一个网络

docker network diconnect [网络] [容器]:断开一个网络

docker network inspect:查看网络内部信息

docker network ls:显示网络上单详细信息

  1. 网络模式:

    bridge:docker 默认模式,所有模式都在同一个网络上

    host:用宿主机的资源,容器和宿主机共享网络

    container:新创建的容器间使用,与宿主机无关

    none 模式:不提供任何网络服务

  2. 网桥配置:

    sudo apt install bridge-utils -y:安装 bridge 管理工具

    brctl addbr br0:新建 br

    brctl show

    sudo ifconfig br0 192.168.99.1 netmask 255.255.255.0:手动设置网段

    echo DOCKER_OPTS=“-b=[网桥名]”>> /etc/default/docker:添加默认使用的网桥


    mkdir -p /etc/systemed/system/docker.service.d

    vim /etc/systemed/system/docker.service.d/Using_Environment_File.conf:写配置

    1
    2
    3
    4
    [Service]
    EnvironmentFile=-/etc/default/docker
    ExecStart=
    ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS

    systemctl restart daemon-reload重载配置文件

    systemctl restart docker:重启 docker 服务


    此后创建的容器默认都为刚才配置的网桥

  3. host 模式

    docker run --net=host -itd --name [容器名称] 镜像名称

    可以使用当前 ip 地址直接访问容器内容

查看评论