博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker学习之容器
阅读量:6000 次
发布时间:2019-06-20

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

简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。

启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。

新建并启动

# docker run ubuntu:16.04 /bin/echo "hello world"

启动一个bash终端,运行用户交互

# docker run -it ubuntu:16.04 /bin/bash

root@1f778f9011c3:/# pwd

/

启动已终止容器:

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

# docker container start <容器ID>

后台运行

不加-d 参数,一直在宿主机打印hello world

# 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

加-d 参数 后台运行,输出结果用docker logs <容器id> 查看

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

# docker logs 952

注: 容器是否会长久运行,是和 docker run 指定的命令有关,和 -d 参数无关。

终止容器

# docker container stop <容器id>

已经终止的容器 docker container ls -a 可以看到,状态为Exited

# docker container start <容器id> 启动已终止的容器

# docker container restart <容器id> 停止一个运行状态的容器,再重新启动它

进入容器

attach命令attach <容器id>

# docker run -dit ubuntu

7e74e9d5309d4a93a804a26c155209b81d9ef4320cfa315c585e8713b2f94dc2

[root@localhost ~]# docker container ls

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

7e74e9d5309d        ubuntu              "/bin/bash"         8 seconds ago       Up 6 seconds                            agitated_curie

# docker attach 7e74

root@7e74e9d5309d:/# cat /etc/os-release

NAME="Ubuntu"

VERSION="18.04 LTS (Bionic Beaver)"

root@7e74e9d5309d:/# exit

exit

从这个stdin中exit,会导致容器的停止;

exec命令,推荐使用;exec -it <容器id> /bin/bash

# docker run -dit ubuntu

# docker exec -it 51fc bash

从这个stdin中exit,不会导致容器的停止;

导入导出容器

导出容器快照到本地 docker export <容器ID> > name.tar

# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES

51fc79bce0e0        ubuntu              "/bin/bash"         5 minutes ago       Exited (0) 2 seconds ago

# docker export 51fc79bce0e0 > ubuntu.tar

# ls -lh

-rw-r--r--  1 root root  69M May 14 13:53 ubuntu.tar

导入容器快照

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

sha256:e5a67314033cf0ba8c81302e780c5b18e5172692c7f5cad1a8b532080edab1c2

# docker image ls

REPOSITORY          TAG                 IMAGE ID           CREATED             SIZE

test/ubuntu         v1.0               e5a67314033c        5 seconds ago       69.8MB

删除容器

删除一个处于终止状态的容器

# docker container rm <容器ID> or <NAME>

如果要删除一个运行中的容器,可以添加 -f 参数。Docker 会发送 SIGKILL 信号给容器。

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

用 docker container ls -a 命令可以查看所有已经创建的包括终止状态的容器,如果数量太多要一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器。

# docker container prune

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

你可能感兴趣的文章
一文教会你数据库性能调优(附某大型医院真实案例) ...
查看>>
利用ApiPost接口调试与文档生成工具,提升前、后端工作效率 ...
查看>>
【问卷有奖奖奖奖奖】云栖大会调研问卷~!甜美小姐姐贡献全部身家只求真心话 ...
查看>>
算法笔记之动态规划(2)
查看>>
Jsp读取MySQL数据
查看>>
使用idea创建springboot项目并打成war包发布到weblogic上
查看>>
IOT语义互操作性之API接口
查看>>
在java中使用log4j
查看>>
Android 仿照微信发说说,既能实现拍照,选图库,多图案上传 使用Retrofit2.0技术...
查看>>
0110-如何给Kerberos环境下的CDH集群添加Gateway节点
查看>>
关于K8s集群器日志收集的总结
查看>>
「镁客早报」5G手机成本曝光;Facebook太阳能互联网无人机测试再启动
查看>>
Python零基础学习代码实践 —— 打印5位数的回文数并统计个数
查看>>
动态编程(Dynamic Programming)
查看>>
安全机构 abuse.ch 公布近10万个恶意网站
查看>>
记一段 Kotlin 处理 HashMap 数据结构的代码
查看>>
块存储、文件存储、对象存储意义及差异
查看>>
WPF之UI虚拟化
查看>>
AI芯片如果有“罗马大道”,必定归功可重构计算
查看>>
关系型数据库尚能饭否?NoSQL、NewSQL谁能接棒?
查看>>