Docker入门

简介: Docker入门

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。


如果你对Docker感兴趣,那么你现在可以继续往下翻了。

640.png


https://github.com/moby/moby


在使用Docker之前你需要有一点Linux对基础,关于Linux的基础我之前的文章有讲过,就不再细说了。


关于Docker的使用场景

一般是以下的场景:

1、web网站的自动化应用(打包,发布等)

2、自动化测试

3、持续继承,发布

4、在特定环境中部署后台应用,例如数据库等等


为什么使用Docker?

1、使程序更加简单化

开发者可以直接将自己的成果放入Docker中进行管理。

2、节省开支

性能好,价格低廉。


Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

Docker 面向对象
容器 对象
镜像



640.jpg



下面介绍Docker里面的几个概念


Images

用于创建 Docker 容器的模板。


Container

container是独立运行的一个或一组应用


Client

执行Docker命令的东西,可以是Docker的API,也可以是Docker客户端

用它来控制Docker。


Registry

这也就是仓库,用来保存Images


Docker Machine

一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker


Docker的安装

小编使用的是阿里云的Ubuntu镜像,所以这里介绍的是Ubuntu环境的Docker安装。


1.获取Docker最新的安装包

$curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -


2.安装所需要的包

sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual


3.添加使用 HTTPS 传输的软件包以及 CA 证书

sudo apt-get update

sudo apt-get install apt-transport-https ca-certificates


4.添加GPG密钥

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D


5.添加软件源

echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list


6.添加成功后更新软件包缓存

sudo apt-get update


7.安装docker

sudo apt-get install docker-engine


8.启动Docker服务

$sudo systemctl enable docker

$sudo systemctl start docker


9.运行Docker

$ docker run HelloWorld



如何使用Docker

640.jpg


输入docker可以查看所有的命令选项。

如果想知道某条命令的使用方法可以输入 docker xxx --help


例如我想看build的用方法:

docker build --help


640.jpg


运行一个web应用

将应用拉过来

$docker pull training/webapp

运行

$docker run -P training/webapp python app.py

参数说明:

-p,将container中使用的端口映射到主机上

还可以加其他参数,例如 -d,让container在后台运行

-l,将目标数据设置在container上


如果需要检查web应用程序,可以使用 docker inspect 来查看 Docker 的底层信息


停止web程序的container:

$docker stop xxxxx


启动web程序的container:

$docker start xxxxx


删除这个不需要的container:

$ docker rm xxxxx




关于Docker中的Images:

可以使用docker images来秀出主机上的images(镜像)。

640.png


REPOSITORY:表示镜像的仓库源

TAG:镜像的标签

IMAGE ID:镜像ID

CREATED:镜像创建时间

SIZE:镜像大小


同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。


如果需要创建一个心动镜像可以通过pull命令来拉一个新镜像:

docker pull ubuntu:13.10

docker pull httpd


我们还可以使用build指令从零开始创建一个新的镜像

但是在执行build指令之前,我们需要创建一个Dockerfile文件,在这个文件里面是一些配置,告诉Docker要创建怎样的一个镜像。


640.png

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

第一条FROM,指定使用哪个镜像源

RUN 指令告诉docker 在镜像内执行命令,安装了什么

然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。



初步的内容就到这里了


相关文章
|
11天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
48 2
|
1月前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
85 5
|
1月前
|
Linux 持续交付 Docker
掌握Docker:从入门到实践
Docker 是一个开源容器引擎,允许开发者将应用及其依赖打包成可移植的容器,在任意 Linux 机器上运行。本文从基本概念入手,详细介绍 Docker 的安装、基本操作、镜像构建及 Docker Compose 的使用,并通过实战案例展示如何部署 Web 应用、构建微服务架构及实现 CI/CD。通过学习,你将掌握 Docker 的核心功能,提升应用开发和部署效率。
|
5天前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
13天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
19天前
|
运维 持续交付 虚拟化
docker入门详解!!!
本文介绍了容器技术的发展历程,从物理机到虚拟化再到容器化,重点讲解了Docker的诞生及其优势。Docker通过轻量级的容器技术,实现了资源的高效利用、快速启动、环境一致性、持续交付和部署等优点。文章还详细解析了Docker的架构和工作原理,包括Docker Daemon、REST接口、Docker Client等组件,以及容器与虚拟机的差异。
57 2
|
26天前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
41 3
|
1月前
|
Ubuntu Shell 开发者
Docker入门:轻松开始容器化之旅
【10月更文挑战第17天】Docker 是一种开源的应用容器引擎,它让开发者能够“一次构建、到处运行”。Docker 通过容器化技术将应用程序及其依赖打包在一起,从而确保应用在任何环境中都能一致地运行。本文将为新手用户提供一个全面的Docker入门指南,包括基本概念、优势、安装配置以及如何创建和管理容器。
46 2
|
1月前
|
存储 运维 云计算
探索Docker容器化:从入门到实践
在这个快速发展的云计算时代,Docker容器化技术正在改变应用的开发、部署和管理方式。本文旨在为初学者提供一个关于Docker的全面入门指南,并通过实践案例展示Docker在实际开发中的应用。我们将一起了解Docker的核心概念、基本操作、网络和存储,以及如何构建和部署一个简单的Web应用。无论你是开发者还是运维人员,本文都会帮助你快速掌握Docker的核心技能。
|
1月前
|
Kubernetes Cloud Native Docker
云原生入门:Kubernetes和Docker的协同之旅
【10月更文挑战第4天】在这篇文章中,我们将通过一次虚拟的旅行来探索云原生技术的核心——Kubernetes和Docker。就像乘坐一艘由Docker驱动的小船启航,随着波浪(代码示例)起伏,最终抵达由Kubernetes指挥的宏伟舰队。这不仅是一段技术上的旅程,也是理解现代云架构如何支撑数字世界的冒险。让我们扬帆起航,一探究竟!