docker常用命令使用样例
2018-01-02 10:25
483 查看
使用镜像
# 下载镜像 docker pull ubuntu:14.04 # 列出镜像 docker images #启动镜像 # i 交互操作 # t 终端 # rm 退出容器时将镜像删掉 一般是docker rm 才可以删除,随便执行看看有无作用 # bash 进入bash交互 docker run -it --rm ubuntu:14.04 bash # 退出容器 exit
管理镜像
#查询镜像 docker search image_name # docker下载镜像命令 docker pull [选项] [docker_registryj地址]<仓库名>:标签 #停止所有的container,这样才能够删除其中的images: docker stop $(docker ps -a -q) 如果想要删除所有container的话再加一个指令: docker rm $(docker ps -a -q) #查看当前有些什么images docker images #删除images,通过image的id来指定删除谁 docker rmi <image id> #想要删除untagged images,也就是那些id为<None>的image的话可以用 docker rmi $(docker images | grep "^<none>" | awk "{print $3}") #要删除全部image的话 docker rmi $(docker images -q) #显示包括中间层镜像 # -a 将中间层镜像一起显示 docker images -a #根据仓库名列出镜像 # docker images <仓库名> docker images ubuntu #列出特定的某个镜像 # docker images <仓库名>:标签 #使用过滤器 --filter 简写 -f 后面有参数 #-f since=<仓库名>:标签 在什么镜像之前 #-f before=<仓库名>:标签 在什么镜像之后 #-f label=LABRL 镜像构建时定义的label docker images -f since=ubuntu:14.04 #-q 只显示image id docker images -q #使用go的模板语法列出镜像ID和仓库名 docker images --format "{{.ID}}:{{.Repository}}" #表格列出列表 docker images --format "table{{.ID}}\t{{.Repository}}\t{{.Tag}}"
redis安装启动模板
➜ ~ docker pull redis:3.2 3.2: Pulling from library/redis f5cc0ee7a6f6: Pull complete 5fc25ed18e87: Pull complete e025bc8872f6: Pull complete 0d8edb7c8bd1: Pull complete 654cb9d60232: Pull complete 44888ef53075: Pull complete Digest: sha256:4e2af5470298aa3c79fba07216f0245fff5278b66f40681cf448eabca0bb966b Status: Downloaded newer image for redis:3.2 ➜ ~ docker ps -a -q ➜ ~ docker run --name redis01 -d -p 6379:6379 redis:3.2 bd067673a23fb10e2fc17f2b742ab50af730d91e78226275529019fe8326ed3f ➜ ~ docker exec -it redis01 bash root@bd067673a23f:/data# root@bd067673a23f:/data# redis-cli 127.0.0.1:6379> exit root@bd067673a23f:/data# exit exit ##利用容器内的redis-cli连接到本机再连接到容器的redis root@bd067673a23f:/data# redis-cli -h 192.168.31.60 192.168.31.60:6379> exit root@bd067673a23f:/data#exit exit
启动镜像参数
docker run [选项]<参数> <仓库名>:标签 容器启动命令 # -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项; # -d: 后台运行容器,并返回容器ID; # -i: 以交互模式运行容器,通常与 -t 同时使用; # -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=[]: 开放一个端口或一组端口 # -p=宿主端口:容器端口 本机端口映射容器端口 # -v 宿主卷目录挂在到容器的某个目录,以利于c$PWD/data:/data:将主机中当前目录下的data挂载到容器的/data docker run --name webserver -d -p 80:80 nginx
进去已启动的容器进行配置
docker exec [选项]<参数> 容器名 bash # -d :分离模式: 在后台运行 # -i :即使没有附加也保持STDIN 打开 # -t :分配一个伪终端 docker exec -it webserver bash #根据需求修改容器内容 #查看修改内容 docker diff 容器名 #从修改过的容器创建镜像 # --author "修改的作者信息" # --message "记录本版本修改的内容" docker commit [选项] <容器ID或容器名> [<仓库名>[:<新的标签>]] ~ docker diff redis01 C /root A /root/.bash_history A /root/.rediscli_history ➜ ~ docker commit --author "linbingcheng <bingchenglin@qq.com>" \ > --message "测试测试" redis01 redis:newtest sha256:51625f00ff093e7dd29d770156f157be9c06b48d75642a01ddd85eec95725152 docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis newtest 51625f00ff09 54 seconds ago 99MB redis 3.2 4e482b286430 3 weeks ago 99MB ubuntu 14.04 4a2820e686c4 3 weeks ago 188MB ##查看镜像修改历史 docker history redis:newtest redis:newtest 就是一个新生成的镜像了,可以用来使用 docker commit 用于学习和保存被入侵现场,否则不适合用来定制镜像,定制行为应使用dockerfile 来完成 (原因是生成的镜像会很臃肿)
docker inspect [NAME]/[CONTAINER ID]:images只会列出镜像的基本信息,详细信息可以通过inspect命令查看:
保存和加载镜像(save、load)
# 保存镜像到一个tar包; -o, --output="" Write to an file $docker save image_name -o file_path # 加载一个tar包格式的镜像; -i, --input="" Read from a tar archive file $docker load -i file_path # 机器a $docker save redis:newtest > /Users/linbingcheng/Desktop/redis.tar # 使用scp将save.tar拷到机器b上,然后: $docker load < /Users/linbingcheng/Desktop/redis.tar
进入容器
docker attach 容器名
相关文章推荐
- docker常用命令的使用
- docker常用命令的使用
- Docker的常用命令使用
- Docker的常用命令(包含一些nova-docker中的使用命令)
- Kubernetes之kubectl常用命令使用指南:4:docker命令 vs kubectl
- Docker安装使用及常用命令
- Docker常用命令--使用实例及总结
- docker常用命令以及dockerfile使用
- Kubernetes之kubectl常用命令使用指南:4:docker命令 vs kubectl
- Docker 常用命令及使用 (减轻记忆版)
- 如何使用 docker 及常用命令(一)
- Docker | 学习系列 (四)Docker镜像常用命令使用教程
- docker的安装使用及常用命令大全
- Docker安装教程Centos7和Docker基础使用常用命令
- Docker 常用命令整理及使用注意事项总结
- docker的常用命令(方便大家使用)
- Docker常用命令使用(一)
- Docker的使用--常用的docker命令(三)
- 企业Docker的使用流程以及常用命令
- docker 使用教程(2)常用命令