docker命令集

一:docker镜像管理

  1. 搜索镜像
    docker search 镜像名称
    eg.
    docker search ubuntu

  2. 获取镜像(下载远程仓库中的镜像)
    docker search 镜像名称
    eg.
    docker pull ubuntu

  3. 列出本地镜像
    docker images 镜像名称 # 列出指定镜像
    docker image ls 镜像名称 # 列出指定镜像
    docker images # 列出所有镜像
    docker images -a # 列出所有镜像
    docker image ls # 列出所有镜像

  4. 本地镜像重命名(对本地镜像的name、tag重命名,并产生一个命名后的镜像)
    docker tag 旧镜像名称:旧镜像版本 新镜像名称:新镜像版本

  5. 本地镜像删除
    docker rmi 镜像ID/镜像名称:镜像版本
    docker image rm 镜像ID/镜像名称:镜像版本
    eg.
    docker rmi ubuntu
    docker rmi ubuntu:latest
    docker image rm ubuntu
    docker image rm ubuntu:latest
    docker image rm 9dd37cab9c22
    docker rmi 9dd37cab9c22

  6. 导出镜像到本地
    docker save -o 导出文件存储路径及文件名称 导出镜像名称 本地镜像名称
    eg.
    docker save -o ~/Desktop/ubuntu.tar ubuntu

  7. 导入镜像
    docker load -i 导入镜像文件路径及文件名称
    eg.
    docker load -i ~/Desktop/ubuntu.tar

  8. 查看本地某个镜像的历史信息
    docker history 镜像名称:镜像版本/镜像ID
    eg.
    docker history ubuntu

  9. 查看镜像详细信息
    docker inspect 镜像名称:镜像版本/镜像ID
    docker inspect ubuntu

  10. 根据模板创建镜像
    // 从镜像网站下载模板
    // https://download.openvz.org/template/precreated/
    cat 模板名称.tar | docker import - 自定义镜像名称
    eg.
    cat ubuntu-16.04-x86_64.tar.gz | docker import - myubuntu

二:docker容器管理

  1. 查看当前正在运行的容器
    docker ps

  2. 查看所有容器
    docker ps -a

  3. 创建待启动的容器
    docker create 镜像名称
    eg.
    docker create -it --name myubuntu ubuntu ls -a

  4. 启动容器
    docker start 容器名称/容器ID
    eg.
    docker start -a myubuntu

  5. 创建容器并启动
    docker run 镜像名称
    eg.
    docker run -it --name myubuntu ubuntu /bin/bash

  6. 守候进程启动容器
    docker run -d 镜像名称
    eg.
    docker run -d myubuntu

  7. 容器暂停、取消暂停、重启
    docker pause 容器名称/容器ID
    docker unpause 容器名称/容器ID
    docker restart 容器名称/容器ID

  8. 容器关闭、终止、删除、强制删除
    docker stop 容器名称/容器ID
    docker kill 容器名称/容器ID
    docker rm 容器名称/容器ID
    docker rm -f 容器名称/容器ID

  9. 进入容器
    // 创建容器并进入
    docker run -it --name 要创建的容器名称 镜像名称 /bin/bash
    // 手工方式进入已在运行中的容器
    docker exec -it 容器id /bin/bash
    // 生产方式进入容器(借助脚本)
    脚本内容:

#!/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

直接执行的话是没有执行权限的所以需要赋值权限

#赋权执行
$ chmod +x docker_in.sh #进入指定的容器,并测试
$ ./docker_in.sh b3fbcba852fd
  1. 基于容器创建镜像
    方式一:
    docker commit -m “摘要” -a “作者” 容器ID 创建的镜像名称:版本号
    方式二:
    docker export 容器ID > 模板文件.tar

  2. 查看容器运行日志
    docker logs 容器ID

  3. 查看容器详细信息
    docker inspect 容器ID

  4. 查看容器端口
    docker port 容器ID

  5. 容器重命名
    docker rename 容器旧名称 容器新名称

三:docker数据管理

  1. 挂载宿主机目录到容器
    docker run -itd --name 新建的容器名字 -v 宿主机目录:容器目录 镜像名称
    eg.
    docker run -itd --name myubuntu -v ~/Desktop:/mydesktop ubuntu

docker 挂载数据卷的默认读写权限(rw),用户可通过ro设置为只读
eg.
docker run -itd --name myubuntu -v ~/Desktop:/mydesktop:ro ubuntu

  1. 数据卷容器

使用特定容器维护数据卷,为其他容器提供数据交互存储的容器。

如果使用数据卷容器,在多个容器间共享数据,并永久保存这些书籍,需要有一个规范的流程:创建数据卷容器—》其他容器挂载数据卷容器

数据卷容器本身不需要启动,但启动依然可以进行数据卷容器的工作。

2.1 创建数据卷容器
docker create -v 容器数据卷目录 --name 新创建的容器名字 镜像名字
eg.
docker create -v /mydata --name dataubuntu ubuntu

2.2 创建其他容器,并挂载数据卷容器
docker run --volumes-from 数据卷容器ID/Name -tid --name 新创建的容器名字 镜像名称
eg.
docker run --volumes-from dataubuntu -tid --name testubuntu ubuntu /bin/bash

四:docker网络管理

  1. 端口随机映射 -P 大写
    docker run -d -P 镜像名称
    eg.
    docker run -d -P nginx
    //netstat -tnulp 查看当前主机开放了哪些端口

  2. 指定端口映射 -p 小写
    docker run -d -p 宿主机ip:宿主机端口:容器端口 --name 新建的容器名称 镜像名称
    eg.
    docker run -d -p 9001:9100 -p 9002:9200 --name myubuntu ubuntu

  3. 网络命令
    docker network help // 查看帮助
    docker network ls // 查看网络类型
    docker network inspect bridge // 查看bridge网络详情

  4. 创建网络
    docker network create --driver 网络类型 网络名称
    eg.
    docker network create --driver bridge bridge-test

网络类型
bridge 模式:docker的默认模式,类似vmware虚拟机桥接模式
host 模式:容器和主机共享网络
container模式:容器和容器共享网络
none模式:无网络模式
overlay模式:容器彼此不再同一网络,而且能互相同行

  1. 自定义网段与网关
    eg.
    docker network create --driver bridge --gateway 172.99.0.1 --subnet 172.99.0.0/16 bridge-test1

  2. 在自定义网络中启动容器
    docker run --net=网络名称 -itd --name 新建的容器名称 镜像名称
    eg.
    docker run --net=bridge-test -tid --name myubuntu ubuntu

  3. 容器断开网络
    docker network disconnect 网络名称 容器名称
    eg.
    docker network disconnect bridge-test myubuntu

  4. 容器连接网络
    docker network connect 网络名称 容器名称
    eg.
    docker network connect bridge-test myubuntu

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值