4.Docker 操作容器
启动容器
所需要的命令主要为 docker run
。例如,下面的命令输出一个 “Hello World”,之后终止容器。
docker run ubuntu:16.04 /bin/echo 'Hello world'
Hello world
当利用 docker run
来创建容器时,Docker 在后台运行的标准操作包括:
- 检查本地是否存在指定的镜像,不存在就从公有仓库下载
- 利用镜像创建并启动一个容器
- 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
- 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
- 从地址池配置一个 ip 地址给容器
- 执行用户指定的应用程序
- 执行完毕后容器被终止
终止容器
可以使用 docker container stop
来终止一个运行中的容器。此外,当 Docker 容器中指定的应用终结时,容器也自动终止。
例如对于只启动了一个终端的容器,用户通过 exit
命令或 ctrl + d
来退出终端时,所创建的容器立刻终止。终止状态的容器可以用 docker container ls -a
命令看到。例如
docker container ls -a
# 输出如下
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ba267838cc1b ubuntu:14.04 "/bin/bash" 30 minutes ago Exited (0) About a minute ago trusting_newton
98e5efa7d997 training/webapp:latest "python app.py" About an hour ago Exited (0) 34 minutes ago backstabbing_pike
启动已终止容器
处于终止状态的容器,可以通过 docker container start
命令来重新启动。此外,docker container restart
命令会将一个运行态的容器终止,然后再重新启动它。
docker container start [container ID or NAMES]
守护态运行
更多的时候,需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 -d
参数来实现。如果不使用 -d
参数运行容器。
docker run ubuntu:16.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
# 输出如下
hello world
hello world
hello world
hello world
容器会把输出的结果 (STDOUT) 打印到宿主机上面,如果使用了 -d
参数运行容器。
docker run -d ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
# 输出如下
77b2dc01fe0f3f1265df143181e7b9af5e05279a884f4776ee75350ea9d8017a
此时容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 docker logs
查看)。
注意: 容器是否会长久运行,是和
docker run
指定的命令有关,和-d
参数无关。
容器日志
要获取容器的输出信息,可以通过 docker container logs
命令。
docker container logs [container ID or NAMES]
# 输出如下
hello world
hello world
hello world
进入容器
在使用 -d
参数时,容器启动后会进入后台。某些时候需要进入容器进行操作,docker exec
命令能让我们以交互的方式进入容器。
docker exec
后边可以跟多个参数,这里主要说明 -i
-t
参数。只用 -i
参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。当 -i
-t
参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。
docker exec -it 69d1 bash
root@69d137adef7a:/#
如果从这个 stdin 中 exit,不会导致容器的停止。更多参数说明请使用 docker exec --help
查看。
删除容器
可以使用 docker container rm
来删除一个处于终止状态的容器。例如
docker container rm trusting_newton
trusting_newton
如果要删除一个运行中的容器,可以添加 -f
参数。Docker 会发送 SIGKILL
信号给容器。
清理所有处于终止状态的容器
用 docker container ls -a
命令可以查看所有已经创建的包括终止状态的容器,如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器。
docker container prune
4.Docker 操作容器的更多相关文章
- Docker操作容器2
Docker操作容器1:https://blog.csdn.net/Kevinnsm/article/details/ 1.如何更改docker容器中的配置文件(如nginx容器中的nginx.con ...
- Docker系列(二)镜像下载、操作容器、镜像导入导出等操作
一.镜像操作 列出镜像 $sudo docker images 从dockerhub检索image $docker search image_name 下载image $docker pull ima ...
- Docker基础-容器操作
1.创建容器 1.新建容器 可以使用docker create命令新建一个容器. [root@linux-node1 ~]# docker create -it ubuntu:latest ffc90 ...
- Docker学习(四): 操作容器
特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...
- docker 实践三:操作容器
在学习了 docker 镜像的内容后,我们在来看 docker 的另一个核心点:容器. 注:环境为 CentOS7,docker 19.03 docker 的容器是镜像的一个运行实例.docker 镜 ...
- Docker.[4].容器操作.
Docker.[4].容器操作. 熟悉的指令: 启动容器 docker run 交互式启动容器 docker run -i -t IMAGENAME /bin/bash 停止容器 exit 停止容器 ...
- docker镜像,容器的操作和应用
镜像操作 拉取镜像 从中央仓库拉取到本地 docker pull 镜像名称[:tag] #举个例子 :docker pull daocloud.io/libarary/tomcat:8.5.-jre8 ...
- Docker笔记--操作容器命令
Docker笔记--操作容器命令 创建容器 docker [container] create-- 创建容器,使用docker [container] create命令新建的容器处于停止状态,可以使用 ...
- Docker的容器操作
启动一次性运行的容器 入门级例子:从ubuntu:14.04镜像启动一个容器,成功后在容器内部执行/bin/echo 'hello world'命令,如果当前物理机没有该镜像,则执行docker pu ...
随机推荐
- opencv —— calcHist、minMaxLoc 计算并绘制图像直方图、寻找图像全局最大最小值
直方图概述 简单来说,直方图就是对数据进行统计的一种方法,这些数据可以是梯度.方向.色彩或任何其他特征.它的表现形式是一种二维统计表,横纵坐标分别是统计样本和该样本对应的某个属性的度量. 计算直方图: ...
- linux中目录处理命令
目录 mkdir cd pwd rmdir cp mv rm mkdir 解释 命令名称:mkdir 命令英文原意:make directories 命令所在路径:/bin/mkdir 执行权限:所有 ...
- 编译Qualcomm的Hexagon exampls错误
在下载了Qualcomm的Hexagon SDK 351版本之后,想跑里面的examples,然后参照文档的说,比如在examples/common/sobel3x3_v60目录下面,先执行了SDK根 ...
- 安卓接入融云IM连接不上??
融云初始化失败?融云连接失败??连接回调方法不执行???不可能的,就那么几行代码,怎么会有错. 1.项目gradle里添加融云maven仓库 maven {url "https://dl.b ...
- 限制input输入框只能输入 数字
<input type="text" oninput = "value=value.replace(/[^\d]/g,'')">
- Ubuntu安装C#语言开发环境
使用Bash自动化安装 先下载Bash脚本(Linux/macOS),运行脚本 ./dotnet-install.sh -c Current 或者使用包管理器安装 wget -q https://pa ...
- Ubuntu-Server18.04开启无线网卡并配置静态ip
手里有一个笔记本快10年了,还是奔腾处理器,最近把它做成了Ubuntu-Server的系统,花了点时间折腾无线网卡,稍微记录一下,希望看见的人能少踩点坑. 1. 制作U盘启动工具,从Ubuntu官网下 ...
- LINUX下EFIBOOTMGR的使用,删除UEFI主板多余启动项和添加启动项
用uefi装了几次次archlinux,搞的uefi启动选项下多出来好多启动项..这东西重格硬盘也是不好用的.发现以下方法可以解决. efibootmgr //显示efi的启动项 删除一个引导项 ...
- 【感知机模型】手写代码训练 / 使用sklearn的Perceptron模块训练
读取原始数据 import pandas as pd import numpy as np in_data = pd.read_table('./origin-data/perceptron_15.d ...
- spring boot的一个小项目小型进销存系统
项目所需的依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...