docker(3)

简介: docker

docker(2)https://developer.aliyun.com/article/1530611

3.容器命令

docker pull ubuntu

docker run ubuntu

OPTIONS说明(常用) :有些是一个减号,有些是两个减号

–name=“容器新名字”

为容器指定一个名称;

-d:后台运行容器并返回容器ID,也即启动守护式容器(后台运行);.

-i: 以交互模式运行容器,通常与-t同时使用;

-t: 为容器重新分配-一个伪输入终端,通常与-i同时使用;

也即启动交互式容器(前台有伪终端,等待交互);

-P:随机端口映射,大写P

-p:指定端口映射,小写p

docker start

语义

启动一个或多个处于停止中的的容器

语法

docker start [OPTIONS] CONTAINER [CONTAINER…]

参数说明

该命令中的CONTAINER既可以是容器的Name,也可以是容器的ID,查看运行中的容器通过下面的命令:

docker ps

查看所有的容器通过下面的命令:

docker ps -a

-a : 在前台运行容器并输出日志

docker start -a #{containerName}/#{containerID}

-i : 启动并进入交互模式

docker start -i #{containerName}/#{containerID}

这个和 start之后再exec -it 一样

实例

启动一个容器名为nginx-1的容器

docker start nginx-1

启动两个容器,分别为容器名为nginx-1、容器ID为356466a99c7f的两个容器

docker start nginx-1 356466a99c7f

4.列出当前所有正在运行的容器

docker ps

-- OPTIONS 说明

-a :列出当前所有正在运行的容器+历史上运行过的

-l:显示最近创建的容器。

-n:显示最近n个创建的容器。

-q :静默模式,只显示容器编号。

5. 退出容器

两种退出方式

exit run进去容器,exit退出,容器停止

ctrl + p + q run进去容器,ctrl + p + q 退出容器不停止

6. 删除已经停止的容器

docker rm 容器id

重要

启动守护式容器

在大部分情况下我们希望docker服务是在后台运行的,我们可以通过-d指定容器的后台运行模式

docker run -d 容器名

#使用镜像centos:latest以后台模式启动一个容器docker run -d centos

问题:然后docker ps -a进行查看,会发现容器已经退出

很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.

容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。

这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,

我们配置启动服务只需要启动响应的service即可。例如service nginx start但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀因为他觉得他没事可做了.

所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行,常见就是命令行模式,表示我还有交互操作,别中断,o(n_n)O哈哈~

查看进程信息

查看容器内部细节

docker inspect 容器id

进入正在运行的容器并以命令行交互

docker exec -it容器ID bashShell

重新进入docker attach容器ID

案例演示,用centos或者unbuntu都可以

-上述两个区别

-推荐大家使用docker exec命令,因为退出容器终端,不会导致容器的停止

-用之前的redis容器实例进入试试

容器内的文件拷贝到主机

docker cp 容器ID:容器内路径目的主机路径

这就是把容器导出的tar包导成镜像

四,docker镜像

1.是什么

是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。

只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。

2.分层的镜像

unionFS(联合文件系统):

Union文件系统〈UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual

filesystem)。Union文件系统是Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的

Docker镜像加载原理

docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS。

bootfs(boot file system)主要包含bootloader和lkernel, bootloader主要是引导加载kernel, Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是引导文件系统bootfs。这一层与我们典型的LinuxUnix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。

rootfs (root file system),在bootfs之上。包含的就是典型Linux系统中的/dev,/proc, bin, /etc等标准目录和文件。roots就是各种不同的操作系统发行版,比如Upuntu,Centos等等。

镜像分层最大的一个好处就是共享资源,方便复制迁移,就是为了复用。

比如说有多个镜像都从相同的 base镜像构建而来,那么Docker Host只需在磁盘上保存一份base镜像;同时内存中也只需加载一份base镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。

docker commit提交容器副本使之成为一个新的镜像

docker commit -m=“提交的描述信息” -a="作者"容器ID 要创建的目标镜像名:[标签名]

apt-get update

apt- get -y install vim.

镜像分层最大的一个好处就是共享资源,方便复制迁移,就是为了复用。

比如说有多个镜像都从相同的base镜像构建而来,那么Docker Host只需在磁盘上保存一份base

镜像;

同时内存中也只需加载一份base镜像,就可以为所有容器服务了。而且镜像的每一层都可以被共享。

将本地镜像推送到阿里云

登录密码

https://cr.console.aliyun.com/cn-hangzhou/instance/credentials

docker(3)https://developer.aliyun.com/article/1530615

相关文章
|
10月前
|
存储 监控 开发者
Docker详解,你知道的和不知道的都在这儿
@[TOC](目录) Docker 是一个开源的容器化平台,允许开发者将应用程序和所有其依赖项打包成一个轻量级、可移植的容器,以便在任何地方运行。Docker 采用了 Linux Namespace 和 cgroups 等技术,实现了高度的资源隔离和安全保障,使得容器化应用得以快速、高效地部署和运行。 本文将详细介绍 Docker 的架构、原理和应用,包括以下内容: 1. Docker 的架构和原理 2. Docker 的安装和使用 3. Docker 的基本命令和操作 4. Docker 的容器管理 5. Docker 的网络管理 6. Docker 的存储管理 7.
116 0
|
4天前
|
Linux Go Docker
Docker介绍(二)
Docker是基于Go语言的开源容器平台,利用Linux内核的namespace、cgroups和UnionFS等技术实现在Linux上运行。它分为社区版(Docker-CE)和企业版(Docker-EE),在CentOS上可安装Docker-CE。Docker的核心技术包括镜像,它是包含应用及环境的可执行文件,用于创建容器。常用镜像操作有搜索、查看、下载、删除、保存备份、导入、重命名和检查。
|
9月前
|
运维 测试技术 持续交付
|
11月前
|
运维 Java 程序员
【docker】对docker的理解
【docker】对docker的理解
|
1月前
|
关系型数据库 MySQL 应用服务中间件
docker
docker
94 2
|
7月前
|
Java Shell Linux
Docker使用总结
Docker使用总结
98 0
|
10月前
|
NoSQL Java Redis
了解和使用Docker
本文对 Docker 进行全面阐述,详细介绍 Docker 的作用、其基本使用,如常用命令、Dockerfile 的作用及使用、Docker Compose 的作用及使用。常用的基本上都会涉及,其他可以在[ Docker 官网](https://docs.docker.com/)进行查漏补缺。
111 0
|
11月前
|
存储 运维 Kubernetes
为什么会有docker?Docker 是什么?
深入剖析Kubernetes学习笔记
122 0
|
存储 安全 Linux
认识 Docker 的世界
Docker 简介:Docker 是一种运行于 Linux 和 Windows 上的软件,用于创建、管理和编排容器。 Docker 是在 GitHub 上开发的 Moby 开源项目的一部分。 Docker 公司,位于旧金山,是整个 Moby 开源项目的维护者。Docker 公司还提供商业版和社区版。Docker运行时与编排引擎:Docker 引擎是用于运行和...
217 1
认识 Docker 的世界