Docker 中的容器完全解析

Docker 中的容器完全解析

Docker中的容器可以看成是镜像的一个运行环境,它带有额外的可写文件层。

一、创建容器:

1、新建容器:

 docker create -it --name [CONTAINERNAME] [NAME]:[TAG]

比如:

  docker create -it --name container ubuntu:add /bin/bash

此为根据镜像的名称创建容器,容器的名称为container

2、查看容器详情列表:

  docker ps -a

可以查看到容器的ID,镜像,以及现在容器的状态等。

3、启动一个容器:

   docker start [CONTAINID]

此为根据容器ID启动容器

4、停止一个容器:

   docker stop [CONTAINID]

根据容器ID停止容器

5、重新启动一个容器:

   docker restart [CONTAINID]

此为重新启动一个

6、快速新建并启动容器:

   docker run [NAME]:[TAG]

此为首先为镜像新建一个容器,然后对此容器执行docker start命令

二、进入容器:

1、可以使用exec命令:

  docker exec -it [CONTAINID] [ORDER]

其中最后的即为命令,比如ls,如果要是命令行程序,那么应该为/bin/bash

三、删除容器:

   docker rm [OPTIONS] [CONTAINID]

其中,支持的格式有:

-f 强行终止并删除一个运行中的容器
-l 删除容器的连接,但保留容器
-v 删除容器挂在的数据卷

四、容器的导入和导出:

注意容器是只能导出,不能导入的,其导入的只能是镜像,并且跟镜像的导入导出不同的是,容器的导入时镜像的所有历史记录与快照都将丢失,只是一个最新的状态。而镜像的导入导出可以保存所有历史状态。

1、导出容器:

   docker export [CONTAINID] >xxx.tar

其中,导出的包即为xxx.tar,比如

   docker export b18ef96c3e20 >addContainer.tar

即为将id为b18ef96c3e20容器导出为addContainer.tar

2、导入容器:

   docker import xxx.tar [NAME]:[TAG]

此为将导出的包导入镜像。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • 详解docker容器间通信的一种方法

    以我的ghost博客为例进行说明,我在VPS上用docker启动了两个ghost博客,还有一个Nginx做反向代理,将两个域名分别指向两个博客. docker启动命令 ghost: docker run -e NODE_ENV=production --name ghost1 -v /path/to/data/ghost/ghost1/:/var/lib/ghost -d ghost docker run -e NODE_ENV=production --name ghost2 -v /path

  • docker容器跨服务器的迁移的方法

    docker的备份方式有export和save两种. export是当前的状态,针对的是容器,docker save 是针对镜像images. export 找出要备份容器的ID [root@wls12c ~]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES 037b847bf093 centos "/bin/bash" 3 minutes ago Exited (0) 2 minute naughty_dav

  • 详解Docker 容器互联方法

    Docker容器都是独立的,互相隔离的环境.然而,它们通常只有互相通信时才能发挥作用. 虽然有许多方法可以连接容器们,可是我将并不会试着去将其全部讨论在内.但是在这一系列的方法中,我们将看看那些常用的做法. 虽然看起来是很浅显,但是这对于与Docker成天打交道的朋友来说,理解这些技术及底层的设计理念就显得非常地重要了. 理解这些主题将会: 帮助开发和运维人员探索广泛的容器部署的选择. 让开发和运维人员更自信的着手于微服务microservice架构设计. 让开发和运维人员可以较好的编排更复杂的

  • 使用Grafana 展示Docker容器的监控图表并设置邮件报警规则(图解)

    一.Docker 容器监控报警方式 接着上篇文章的记录,看到grafana的版本已经更新到4.2了,并且在4.0以后的版本中,加入了Alert Notifications 功能,这样在对容器 监控完,可以加入报警规则.根据官网介绍,报警方式也有很多种,常见的Email.Slack即时通讯.webhook等. 本篇记录的是邮件的报警设置.环境和上篇基本一致,都是在Docker 平台测试环境下,另外本篇使用的grafana容器的版本是用的 dockerhub上最新版本,该版本为grafana/gra

  • 详解docker容器硬盘动态扩容

    扩容容器 默认来说,如果你使用 Device Mapper 的存储插件,所有的镜像和容器是从一个初始 10G 的文件系统中创建的.让我们来看看如何从一个更大的文件系统中创建一个容器. 首先,我们用 Ubuntu 的镜像来创建我们的容器.我们不需要在这个容器里运行任何东西,只需要这个文件(或者关联的文件系统)存在.为了演示,我们会在这个容器里运行 df ,来看一下根文件系统的大小. $ docker run -d ubuntu df -h / 4ab0bdde0a0dd663d35993e4010

  • Docker定制容器镜像的2种方法(推荐)

    一.需求 由于在测试环境中使用了docker官网的centos 镜像,但是该镜像里面默认没有安装ssh服务,在做测试时又需要开启ssh.所以上网也查了查资料.下面详细的纪录下.在centos 容器内安装ssh后,转成新的镜像用于后期测试使用. 二.镜像定制 第一种方式(手动修改容器镜像) 1.先下载centos镜像 [root@docker ~]# docker pull centos 2.启动容器并进行配置 启动容器, [root@docker ~]# docker run -it -d --

  • Docker 技巧之删除Docker容器和镜像

    公司业务在生产环境100多台服务器上用了docker,已经有大半年了,可是最近发现,每个服务器上的各种镜像好多好乱,就想批量删除镜像,需要的来看一下把. 删除所有未运行 Docker 容器 docker rm $(docker ps -a -q) 删除所有 Docker 镜像 删除所有未打 tag 的镜像 docker rmi $(docker images -q | awk '/^<none>/ { print $3 }') 删除所有镜像 docker rmi $(docker images

  • Docker容器通过独立IP暴露给局域网的方法

    Docker容器非常轻量,系统开销非常少,比VMware或者VirtualBox用起来方便,部署起来也非常容易.官方推荐我们通过端口映射的方式把Docker容器的服务提供给宿主机或者局域网其他容器使用.一般过程是: 1.Docker进程通过监听宿主机的某个端口,将该端口的数据包发送给Docker容器 2.宿主机可以打开防火墙让局域网其他设备通过访问宿主机的端口进而访问docker的端口 这里以CDNS为例,CDNS是一个用于避免DNS污染的程序,通过CDNS可以把你的计算机变成一个抗污染的DNS

  • Docker容器中运行nginx

    nginx简介 Nginx是一款面向性能设计的HTTP服务器,相较于Apache.lighttpd具有占有内存少,稳定性高等优势.与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强.整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活. 在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高.同时Nginx在OpenBSD或FreeBSD

  • Docker 中的容器完全解析

    Docker 中的容器完全解析 Docker中的容器可以看成是镜像的一个运行环境,它带有额外的可写文件层. 一.创建容器: 1.新建容器: docker create -it --name [CONTAINERNAME] [NAME]:[TAG] 比如: docker create -it --name container ubuntu:add /bin/bash 此为根据镜像的名称创建容器,容器的名称为container 2.查看容器详情列表: docker ps -a 可以查看到容器的ID,

  • 详解Docker中容器的备份、恢复和迁移

    今天,我们将学习如何快速地对docker容器进行快捷备份.恢复和迁移.Docker是一个开源平台,用于自动化部署应用,以通过快捷的途径在称之为容器的轻量级软件层下打包.发布和运行这些应用.它使得应用平台独立,因为它扮演了 Linux上一个额外的操作系统级虚拟化的自动化抽象层.它通过其组件cgroups和命名空间利用Linux内核的资源分离特性,达到避免虚拟机开销的目的.它使得用于部署和扩展web应用.数据库和后端服务的大规模构建组件无需依赖于特定的堆栈或供应者. 所谓的容器,就是那些创建自Do

  • Docker下Tomcat容器中使用Mysql的方法

    在这里我们使用Tomcat容器来运行war包,不过作为一个网站一个程序,如果需要用到数据库的,那么Tomcat容器中如何连接Mysql呢? 已经pull了tomcat和mysql镜像,可以使用docker的连接系统(–link)连接多个容器方式解决tomcat容器中使用mysql [root@izbp1b5k5bjps0dw8owk7tz ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat latest 2d084b1116

  • 解决Docker中的error during connect异常情况

    刚开始接触Docker,遇到异常问题难免会手忙脚乱.没事的,学习就是这样子,在困难中不断地找到解决问题的方法,贵在坚持,加油! 来了来了,问题来了,不要慌,看下面: 我们正常打开了Docker后执行命令后报出error during connect异常. 后面给出了对应异常错误的解释: No connection could be made because the target machine actively refused it.(无法连接,因为目标机器主动拒绝它.)这下子我们知道问题在哪了

  • docker内的容器如何与宿主机共享IP的方法

    目录 问题 原因 解决 问题 有个项目里面需要将一些服务打包到docker镜像中,打包完成后,发现有些服务有问题,主要集中在一些端侧设备接入用的服务,主要是工业相机.相机扫描不到. 原因 当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上.虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中.从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关.

  • Docker中关于Namespace隔离机制全面解析

    目录 前言 1. Docker基本架构 服务端 客户端 2. Namespace Namespace介绍 Namespace的类型 Mount namespace UTS namespace IPC namespace PID namespace Network Namespace User namespace 深入理解Namespace Namespace的劣势 隔离不彻底 有些资源和对象不能被Namespace化 安全问题 前言 Docker 容器能够在服务器中高效运行,离不开容器底层技术的

  • Docker 给运行中的容器设置端口映射的方法

    一.概念 Docker 端口映射即映射容器内应用的服务端口到本机宿主机器. 二.实现 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数两种方式来指定端口映射. 1. 随机映射 使用 -P 参数时,Docker 会随机映射一个端口到内部容器开放的网络端口,如下开启一个 nginx 服务: $ docker run -d -P nginx e93349d539119dc48dc841e117f6388d6afa6a6065b75a5b4aedaf5fb2a051fc

  • docker中修改镜像容器的存放目录的方法

    最近在学习docker的路上,今天遇到了个问题,在网上查找了一下资料,顺便留个笔记 在默认情况下,Docker镜像和容器的默认存放位置为: /var/lib/docker 一般根下分区我们不会给太大.镜像和容器越存越多一般我们有两种解决方法: 1. 挂载大分区到/var/lib/docker 一般选择建立逻辑分区lvm,方便后期扩展集体. 建立新分区,并格式化 [root@localhost lib]# lvcreate -L 300G lv_docker vg_home [root@local

  • Docker中Dockerfile之容器中运行MyEclipse搭建的JavaWeb项目

    这篇文章将讲述如何将上一篇文章中的Javaweb项目制作成Docker的镜像.小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 应用程序在Docker容器中运行和在物理机运行的原理是一样的,所以我们部署这个Javaweb项目到Docker中的步骤应该如下: 服务器支持(这里选择Centos7) 安装Java环境 安装Tomcat环境 将Tomcat根目录下的webapps/ROOT目录下的所有文件(夹)删除 将自己开发的web项目的WebRoot目录下的所有文件(夹)复

  • Docker中容器数据卷(Data Volume)和数据管理详解

    卷(Volume) 众所周知卷(Volume)是容器中的一个数据挂载点,卷可以绕过联合文件系统,从而为Docker 提供持久数据,所提供的数据还可以在宿主机-容器或多个容器之间共享.通过卷,我们可以可以使修改数据直接生效,而不必重新构建镜像. 一.数据卷 数据卷是一个可以绕过联合文件系统的,专门指定的可在一或多个容器间共享目录.卷为提供为持久化或共享数据提供了一些有用的特性. 数据卷设计的初哀是提供持久化数据,而与容器的生命周期无关.因此,在删除容器时,Docker不会自动删除卷,直到没有容器再

随机推荐