docker安装、简介与dockerfile

一、什么是docker?

docker可以粗糙地理解为轻量级的虚拟机。每个容器内运行着一个应用,不同的容器相互隔离,容器之间也可以通过网络互相通信。容器的创建和停止十分快速,几乎跟创建和终止原生应用一致;另外,容器自身对系统资源的额外需求也很有限,远远低于传统虚拟机。很多时候,甚至直接把容器当作应用本身也没有任何问题。

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

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

二、Docker核心概念

Docker 大部分的操作都是围绕它的三大核心概念:镜像、容器、仓库。因此,准确把握这三大核心概念对于掌握Docker技术尤为重要。

  • 镜像(Image): Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了Apache应用程序或用户需要的其他软件。可以把它称为一个Apache镜像。镜像是创建Docker容器的基础。通过版本管理和增量的文件系统,Docker提供了一套非常简单的机制来创建和更新现有的镜像,用户甚至可以 从网上下载一个已经做好的应用镜像,并直接使用。

  • 容器(Container):Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例。它可以启动、开始、停止、删除,而这些容器都是彼此相互隔离,互不可见的。镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器与镜像的关系类似于面向对象编程中的对象与类。
  • 仓库(Repository):Docker仓库类似于代码仓库,是Docker集中存放镜像文件的场所。每个仓库集中存放某一类 镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。根据所存储的镜像公开分享与否,Docker创库可以分为公开仓库(Public)和私有仓库(Private)两种形式。

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

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

docker一般安装在Linux系统下,centos或redhat下都可以

具体大家可以参考下面的文章:https://www.imooc.com/article/16448

https://www.cnblogs.com/yufeng218/p/8370670.html

把用户加入的docker组里面,不用sudo和root用户就可以执行docker命令

sudo usermod -aG docker 用户名

安装完成之后,启动docker:

$ systemctl start docker.service

​​

三、Docker相关的命令

docker version  //版本查看

docker info // 显示docker的信息

docker pull //获取image

dockers build 创建image

dockers iamges //列出本地image

dockers run // 运行container

docker ps // 列出运行的container           

docker ps -a // 列出所有容器

docker rm // 删除container

docker rmi //删除image

docker cp // 在host和container直接拷贝文件

docker commit // 保存改动为新的image

docker  stop  镜像id// 停止当前正在运行的容器 

exit  // 退出容器

四、实际演练

1.以nginx为例

1)拉取最新的nginx镜像

$ docker pull nginx:latest

2)查看本地镜像

$ docker images

3)运行容器

安装完成后,我们可以使用以下命令来运行 nginx 容器:

$ docker run --name nginx-test -p 8080:80 -d nginx

4)安装成功

最后我们可以通过浏览器可以直接访问 8080 端口的 nginx 服务:

2.如何在docker中运行mysql?

docker中安装mysql同前面的nginx是一样的,我在docker中安装的是mysql的5.6版本。

1)首先通过docker启动mysql:

docker run --name=root -it -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

--name之后定义名字,MYSQL_ROOT_PASSWORD为自己定义的密码。

2)使用docker  ps 命令,查看运行中的容器

3)根据id进入镜像内部

docker exec -it containerID /bin/bash

4)进入mysql

mysql -uroot -p 

五、Dockerfile

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

通过编写简单的文件自创docker镜像。

哈哈,在这里举个栗子

(1)首先使用mkdir命令,创建dl文件夹,进入该文件夹,

(2)使用touch Dockerfile,创建Dockerfile文件

(3)vim Dockerfile,编辑Dockerfile文件

FROM  alpine:latest
MAINTAINER  lby
CMD echo "hello docker"

编辑完,esc,使用:wq命令,保存退出即可。 

(4)使用下面的命令,构建一个image,注意末尾的点不能省略

docker build -t hello_docker .

(5)使用docker images命令查看是否生成hello_docker镜像

(6)docker run  hello_docker,运行刚刚构建的docker镜像

至此,dockerfile构建成功。

相关参考:https://www.runoob.com/docker/docker-tutorial.html

猜你喜欢

转载自blog.csdn.net/lovebaby1689/article/details/106484560