博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker学习(三):Docker基本操作(连接容器、删除容器)
阅读量:2095 次
发布时间:2019-04-29

本文共 1968 字,大约阅读时间需要 6 分钟。

一、连接容器

docker attach <container_name>/<container_id>

通过container_name连接容器

开启一个docker容器后通过ps进行查看,并通过attach <container_name>连接容器 

通过container_id连接容器

开启一个docker容器后通过ps进行查看,并通过attach <container_id>连接容器

参数介绍:

参数 说明
--detach-keys[=[]] 指定退出attach模式的快捷键序列,默认是 CTRL-p,CTRL-q
--no-stdin=true | false 是否关闭标准输入,默认是保持打开
--sig-proxy=true | false 是否代理收到的系统信号给应用进程,默认为true

二、外部运行容器内命令

docker exec <container_name>/<container_id>  需要执行的命令

通过container_name运行容器内命令

通过container_id运行容器内命令

参数介绍:

参数 说明
-i, --interactive=true | false 打开标准输入接受用户输入命令,默认为false
--privileged=true | false 是否给执行命令以高权限,默认为false
-t, --tty=true | false 分配伪终端,默认为false
-u, --user="" 执行命令的用户名或ID

若需要打开终端,则使用docker exec -it <container_name> /bin/bash

通过指定-it参数来保持标准输入打开,并且分配一个伪终端,通过exec命令对容器执行操作是最为推荐的方式

三、删除容器

docker rm <container_name>

删除容器有两种情况,一种是容器正在运行,那么就需要使用如下命令:

docker rm -f <container_name>进行强制删除

另外一种情况则是容器没有运行时,就使用如下命令:

docker rm <container_name>删除容器

参数介绍:

参数 说明
-f, --force=false 是否强行终止并删除一个运行中的容器
-l, --link=false 删除容器的连接,但保留容器
-v, --volumes=false 删除容器挂载的数据卷

四、删除镜像(先通过docker images查看镜像目录)

docker rmi <image_name>:<tag>

删除镜像由两种情况,一种是镜像正在被容器实例运行中,那么就需要使用如下命令:

docker rmi -f <image_name>:<tag>进行强制删除

另外一种情况则是镜像创建的容器实例没有运行,就使用如下命令:

docker rmi <image_name>:<tag>删除镜像

提示:正确的删除流程应该是先删除容器再删除镜像!

五、导入和导出容器

1、导出容器

导出容器是指导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态,使用docker export命令

docker export [-o | --output [=""]] container_name

可以通过-o选项来指定导出的tar文件名,也可以直接通过重定向来实现

实例:

docker export -o test_for_run.tar ce5

docker export e81 > test_for_stop.tar

可将导出的tar文件传输到其他机器上,然后再通过导入命令导入到系统中,从而实现容器的迁移

2、导入容器

导出的文件可以使用docker import命令导入变成镜像,命令格式为

docker import [-c | --change [= [] ] ] [-m | --message[=MESSAGE]] file|URL| - [REPOSITORY[:TAG]]

用户可以通过-c,--change=[]选项在导入的同时执行对容器进行修改的Dockerfile指令

实例:

docker import test_for_run.tar - test/ubuntu:v1.0

3、docker load与docker import的区别

docker load命令可以导入镜像存储文件到本地镜像库,docker import命令可以导入一个容器快照到本地镜像库

这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也更大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。

转载地址:http://xuchf.baihongyu.com/

你可能感兴趣的文章
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
为什么在优化算法中使用指数加权平均
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>
Java并发指南2:深入理解Java内存模型JMM
查看>>
Java并发指南6:Java内存模型JMM总结
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>