美文网首页
docker入门

docker入门

作者: Mcq | 来源:发表于2021-03-28 22:51 被阅读0次

Docker 于2013年发布。

Docker 到底是什么

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口,是目前最流行的 Linux 容器解决方案,达到软件自带安装环境的效果。

Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层,像是超轻量级虚拟机。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。

解决什么问题

一直以来,环境配置都是一大难题,让软件在各机器上运行,就运行必须保证环境一致:操作系统的设置,各种库和组件的安装,环境变量等等。换一台机器还得重新配置一次,非常繁琐费时。
虚拟机解决方案,有几个缺点,资源暂用多,安装繁琐,启动慢。

好在哪

资源占用少,启动快,更轻量,更简单的解决方案。
(1)提供一次性的环境。方便测试别人的软件。
(2)提供弹性的云服务。
(3)组建微服务架构。

Docker 安装

检查是否安装成功

$ docker version
# 或者
$ docker info
# service 命令的用法
$ sudo service docker start

image 文件

Docker 把应用程序及其依赖,打包在 image 文件里面,根据image文件可生成多个容器实例。一般基于别人的 image 文件进行加工,而不是从零开始制作,一般用制作好的image文件,Docker 的官方仓库 Docker Hub

# 从仓库拉去image。
docker image pull [image]

# 列出本机的所有 image 文件。
$ docker image ls

# 删除 image 文件
$ docker image rm [imageName]

#根据image生成一个容器实例,该命令会从本地或仓库查找image文件,本地没有时,会自动执行docker image pull [image]
docker container run [image]  [bash] 进入命令行模式

#终止实例
docker container kill [containID]

容器文件

image 文件生成的容器实例,是一个称为容器文件的文件。一旦容器生成就会有, image 文件和容器文件。而且关闭容器并不会删除容器文件,并不会释放空间,下面的命令可以在关闭容器是删除容器。

docker container rm [containerID]

Dockerfile 文件

它是一个文本文件,用来配置 image,Docker 根据 该文件生成二进制的 image 文件。

.dockerignore文件,指定不需要打包进image的文件。

Dockerfile文件

FROM node:8.4   该 image 文件继承官方的 node image,冒号表示标签,这里标签是8.4,即8.4版本的 node。
COPY . /app  将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录。
WORKDIR /app  指定接下来的工作路径为/app。
RUN npm install --registry=https://registry.npm.taobao.org在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包进入 image 文件。
EXPOSE 3000   将容器 3000 端口暴露出来, 允许外部连接这个端口。
创建image文件,-t指定image文件名,. 表示Dockerfile文件所在路径是当前目录
docker image build -t [image] .

docker container run -p 8000:3000 -it [image] /bin/bash
-p参数:容器的 3000 端口映射到本机的 8000 端口。
-it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
image:image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
/bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。

CMD 命令

FROM node:8.4
COPY . /app
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 3000
CMD node demos/01.js  容器启动后,自动执行

常用命令

启动容器
 docker container start [containerID]

立即结束进程,如果有正在执行的操作可能会丢失数据
docker container kill

会进行一些清理工作
docker container stop

相关文章

网友评论

      本文标题:docker入门

      本文链接:https://www.haomeiwen.com/subject/vwxfhltx.html