镜像管理
docker search centos #在官网镜像源中搜索centos,-s 10 :显示收藏超过10次的镜像,--no-trunc:显示完整描述信息
docker pull centos #下载centos镜像,下载的镜像会直接导入docker中,使用docker images查看
docker puth centos #上传本地centos镜像到官方镜像源
docker images #查看本地镜像文件列表
docker rmi centos #删除镜像,必须先删除此镜像生成的容器
docker tag 镜像ID 新名:标签 #重命名镜像和tag(标签)
docker save centos7-base > base.image #导出镜像,推荐用镜像名导出,这样导入时名字不会为<none>
docker load < base.tar #导入镜像到docker,和import暂时没发现区别,但是import导入镜像比load导入的大好几M
docker import base.tar centos7-base #导入镜像到docker
docker run -d --name mynginx -p 80:80 centos:latest
着重说明docker run
命令:
命令参数 | 解释 |
---|---|
run | 启动容器的固定命令 |
-d | 在后台运行容器,容器启动后需要手动登录容器 |
-it |
-i 以交互模式运行容器,既前台运行;-t 分配一个伪终端 |
--privileged | 使用特权,既容器中的用户使用超级管理员root权限,开启后可以看到宿主机上的设备,并且可以执行mount。甚至允许你在容器中启动容器 |
--name | 给启动的容器命名,格式为--name mynginx 或--name=mynginx
|
-p 80:80 |
主机端口 :容器端口 指定主机和容器的端口映射关系, 可以同时指定多个-p |
--net | 指定容器的网络模式,--net host 表示使用主机网络 |
-v | 挂载存储卷,-v /etc/localtime:/etc/localtime 将主机的文件挂载到容器中 |
--cpuset-cpus | 指定该容器运行在哪个CPU核心上 --cpuset-cpus="0"
|
--log-opt | 配置容器日志,--log-opt max-size=10m 设置容器日志大小, --log-opt max-file=3 日志文件数量 |
--restart | 容器重启策略, no (默认值)从不重启,no-failure 当容器退出状态非0时才重启,可以指定重启次数,超过次数则不再重启:--restart=no-filure:3 ,always 只要容器退出立刻重启,当docker重启时该容器也会自动启动,但如果是使用docker stop或docker kill终止的容器不会再次重启 |
容器管理
docker commit 容器ID centos_nginx #将一个容器保存为镜像,否则安装在当前容器中的服务重启即会丢失,centos_nginx是自定义的镜像名称
docker exec -it c02 /bin/bash #进入容器shell命令行,exit 或 ctrl+D
docker stats #查看各容器使用资源情况
timedatectl set-timezone Asia/Shanghai #设置时区,如果容器内的时区不对,可以使用该命令修改时区为亚洲/上海
docker inspect 容器id |grep -i "ipaddress" #查看单个容器ip,或者不用grep过滤直接查看完整容器信息
docker rename 容器名 新容器名 #修改容器名称
docker update {-c,-m,--restart} #修改容器配置,仅能修改cpu 内存和重启策略(不能修改映射端口)
docker diff 容器名 #对比容器与镜像的文件
docker history 镜像名 #查看镜像的每一层信息
docker start 容器ID #启动一个容器,关闭和重启使用stop、restart
docker exec -it 容器ID /bin/bash -c ‘mkdir /test’ #进入容器shell命令行,exit 或 ctrl+D ,bash -c在容器中执行命令,不进入容器
docker ps #查看运行中的容器,ps -a查看所有的容器(包含未启动的容器)
docker cp a.txt 8897:/root/ #从宿主机复制a.txt文件到ID为8897容器中的/root/目录下
docker cp 8897:/root/a.txt /opt/ #复制ID为8897容器中/root/a.txt文件到宿主机的/opt/目录下
docker rm 容器ID #删除一个容器,删除前必须先关闭这个容器
docker stop $(docker ps -q) #关闭所有容器
docker rm $(docker ps -aq) #删除全部容器
docker commit 容器ID xudelong/centos7xu:latest #将容器提交为镜像
• 监控命令
docker top 容器名 #查看指定容器内的进程
docker stats [容器名] #实时显示容器使用资源情况,不加容器名则列出所有容器占用明细
docker system df
docker system df -v #-v 参数查看各个资源的细节,以确定是哪个镜像、容器或本地卷占用过高空间
docker logs -f 容器名 #查看容器日志,-f动态查看, --since="2019-07-09"指定日期的log,
docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID #查看指定时间后的日志,只显示最后100行:
docker logs --since 30m CONTAINER_ID #查看最近30分钟的日志:
docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID #查看某时间之后的日志:
docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID #查看某时间段日志
echo > $(docker inspect -f '{{.LogPath}}' 容器名) #清空指定容器的日志