Docker操作笔记(二)容器

容器

一、启动容器

启动一个容器有两种方式:

1.基于镜像新键并启动一个容器:

所需要的主要命令为docker run

docker run ubuntu:18.04 /bin/echo "hello"
#启动一个bash终端
docker run -t -i ubuntu:18.04 /bin/bash

其中,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。

当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  • 利用镜像创建并启动一个容器
  • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
  • 从地址池配置一个 ip 地址给容器
  • 执行用户指定的应用程序
  • 执行完毕后容器被终止

2.启动一个已终止容器 

可以利用 docker container start 命令,直接将一个已经终止的容器启动运行。

二、后台运行容器

可以通过添加 -d 参数来实现。

docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

此时容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 docker logs 查看)。

使用 -d 参数启动后会返回一个唯一的 id,也可以通过 docker container ls 命令来查看容器信息。

要获取容器的输出信息,可以通过 docker container logs 命令。

三、终止容器

可以使用 docker container stop 来终止一个运行中的容器。

此外,当 Docker 容器中指定的应用终结时,容器也自动终止。

docker container stop 216501648b22

四、进入容器

1.attach 命令   

#进入终端
docker attach 243c

2.exec 命令  

docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。

只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。

当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。

如果从 stdin 中 exit,不会导致容器的停止。这就是为什么推荐大家使用 docker exec 的原因。

docker exec -it d63242b36965 bash

五、导入和导出

1.导出容器快照到本地

docker export 7691a814370e > ubuntu.tar

2.导入容器快照 

可以使用 docker import 从容器快照文件中再导入为镜像

cat ubuntu.tar | docker import - test/ubuntu:v1.0

七、删除容器

可以使用 docker container rm 来删除一个处于终止状态的容器:

docker container rm 40ce498f9d3d

清理所有属于终止状态的容器:

docker container prune

转载于:https://www.cnblogs.com/Shadowplay/p/10231053.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java学习(145):file常用方法2

import java.io.File; import java.io.IOException; import java.net.URI; import java.util.List;//文件管理类 public class FileManager {public static File createFileAction(URI uri){//使用URI做出参数创建对象if(uri!null)return new File( uri );return null;}//dir文…

java uipath_10.3 UiPath如何调用Java

调用Java方法(Invoke Java Method)的介绍从Java Scope中的.jar加载的方法中调用指定的Java方法。并结果存储在变量中二、Invoke Java Method 在UiPath中的使用打开设计器, 在设计库中新建一个Sequence,为序列命名及设置Sequence存放的路径, 在Activities中搜索Java …

Mybatis注解开发之@Results

写在前面:在使用mybatis注解开发的时候,数据库返回的结果集和实体类字段不对应,我们就需要手动指定映射关系; 一种是使用在xml文件中指定resultMap,指定id,下面需要的直接引用id就可以; 另一种在…

java学习(146):file常用方法3

import java.io.File; import java.io.IOException; import java.net.URI; import java.util.List;//文件管理类 public class FileManager {public static File createFileAction(URI uri){//使用URI做出参数创建对象if(uri!null)return new File( uri );return null;}//dir文…

[算法][二分查找][排除法]

最基本的二分查找算法 「搜索区间」是 [left, right] nums[mid] target 时可以立即返回 int binary_search(int[] nums, int target) {int left 0, right nums.length - 1; while(left < right) {int mid left (right - left) / 2;//防止大数溢出if (nums[mid] < t…

php getcount_PHP中关键字interface和implements详解

搜索热词PHP 类是单继承&#xff0c;也就是不支持多继承&#xff0c;当一个类需要多个类的功能时&#xff0c;继承就无能为力了&#xff0c;为此 PHP 引入了类的接口技术。如果一个抽象类里面的所有方法都是抽象方法&#xff0c;且没有声明变量&#xff0c;而且接口里面所有的成…

python操作文件

一、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法。1.得到当前工作目录&#xff0c;即当前Python脚本工作的目录路径: os.getcwd()2.返回指定目录下的所有文件和目录名:os.listdir()3.函数用来删除一个文件:os.remove()4.删除多个目录&#xff1a;os.rem…

java学习(147):字节输入流

//读取二进制文件&#xff0c;字节输入流 import java.io.*;public class FileMana {public static void readBitFile(String filename){//1建立目标要读取的文件对象File filenew File( filename );//2基于目标对象建立输入流InputStream innull;if(file.exists()){//如果文件…

[Leedcode][JAVA][面试题 01.07][找规律][旋转数组]

【问题描述】 [面试题 01.07. 旋转矩阵] 示例 1:给定 matrix [[1,2,3],[4,5,6],[7,8,9] ],原地旋转输入矩阵&#xff0c;使其变为: [[7,4,1],[8,5,2],[9,6,3] ]给你一幅由 N N 矩阵表示的图像&#xff0c;其中每个像素的大小为 4 字节。请你设计一种算法&#xff0c;将图像…

php pmp是什么,pmp 总时差 自由时差 说明 和计算

pmp 总时差 自由时差 说明 和计算总浮动时间LS-ES 或 LF-EF总浮动时间是针对同一个活动来说的自由浮动时间是针对两个紧邻活动来说的自由活动时间紧后活动的最早开始时间-紧前活动的最晚结束时间总时差同一个活动的LS-ESLS:最晚开始&#xff0c;ES&#xff1a;最早开始eg:(以下…

java学习(148):三个参数的输入流

//3个参数读取二进制文件 import java.io.*;public class FileManage {public static void readBitFile(String filename){//1建立目标要读取的文件对象File filenew File( filename );//2基于目标对象建立输入流InputStream innull;if(file.exists()){//如果文件存在&#xff…

[剑指offer][JAVA][面试题第13题][机器人的运动][DFS][BFS]

【问题描述】 [中等] 地上有一个m行n列的方格&#xff0c;从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动&#xff0c;它每次可以向左、右、上、下移动一格&#xff08;不能移动到方格外&#xff09;&#xff0c;也不能进入行坐标和列坐标的数位之和…

ios php rsa,RSA 加密 iOS

在iOS端使用RSA加密的记录一、需求&#xff1a;SDK开发&#xff0c;使用RSA加密和后台进行数据交互&#xff0c;后台是PHP要求&#xff1a;1、post请求&#xff0c;客户端放公钥&#xff0c;私钥放后台2、发送数据&#xff1a;客户端的json数据—>RSA加密数据—>base64编…

java学习(149):字符输入流

import javax.imageio.IIOException; import java.io.*; import java.util.Date;//字符输入流 public class FileManagerChar {public static void readCharFile(File file){FileReader fileReadernull;//文本输入流if(file.exists()){try {fileReader new FileReader( file )…

如何伪造IP(转)

要明白伪装IP的原理&#xff0c;首先要回顾一下TCP的三次握手。 总所周知在链接初始化的阶段&#xff0c; 需要一次三次握手来建立链接&#xff0c; 之后客户端和服务端会依据初始的这个IP地址来通信。 从这个角度上来说&#xff0c; 想真正的伪装一个IP地址是不可能的。 因为即…

java三年,Java开发三年,你不得不了解的JVM(一)

基本概念&#xff1a;JVM 是可运行 Java 代码的假想计算机 &#xff0c;包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收&#xff0c;堆 和 一个存储方法域。JVM 是运行在操作系统之上的&#xff0c;它与硬件没有直接的交互。运行过程&#xff1a;我们都知道Java源文件…

[Leedcode][JAVA][第22题括号生成][DFS][BFS][动态规划]

【问题描述】22. 括号生成 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例&#xff1a;输入&#xff1a;n 3 输出&#xff1a;["((()))","(()())","(())()","()(…

java学习(150):文本缓冲流

import javax.imageio.IIOException; import java.io.*; import java.util.Date;//字符输入流 public class FileManagerChar {public static void readCharFile(File file){FileReader fileReadernull;//文本输入流if(file.exists()){try {fileReader new FileReader( file )…

微信小程序初始化 operateWXData:fail invalid scope

初学者开发微信小程序&#xff0c;可以使用云开发来进行微信小程序的开发。 第一次使用开发工具遇到的问题 解决方案&#xff1a;1、找到云开发 2、点击开通&#xff0c;选择合适自己的开发环境&#xff1b; 3、完成后&#xff0c;返回开发工具界面点击项目第一个节点“cloudfu…

matlab win10 gpu加速,win10的Edge浏览器设置GPU硬件加速,大幅度提升浏览器性能

不知道大家对于GPU硬件加速是否有了解&#xff0c;这是现在的浏览器必备的功能&#xff0c;开启后能大幅度提升浏览器的性能&#xff0c;给我们更加顺滑的浏览体验。GPU硬件加速能够利用GPU的图形性能&#xff0c;加速渲染网页中的图像信息。如果我们开启了GPU硬件加速&#xf…