docker可以粗糙地理解为轻量级的虚拟机。每个容器内运行着一个应用,不同的容器相互隔离,容器之间也可以通过网络互相通信。容器的创建和停止十分快速,几乎跟创建和终止原生应用一致;另外,容器自身对系统资源的额外需求也很有限,远远低于传统虚拟机。很多时候,甚至直接把容器当作应用本身也没有任何问题。
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 大部分的操作都是围绕它的三大核心概念:镜像、容器、仓库。因此,准确把握这三大核心概念对于掌握Docker技术尤为重要。
镜像(Image): Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了Apache应用程序或用户需要的其他软件。可以把它称为一个Apache镜像。镜像是创建Docker容器的基础。通过版本管理和增量的文件系统,Docker提供了一套非常简单的机制来创建和更新现有的镜像,用户甚至可以 从网上下载一个已经做好的应用镜像,并直接使用。
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 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// 停止当前正在运行的容器
以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 服务:
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