Docker笔记

一、Docker概述

1.环境配置难题

软件开发麻烦事--环境配置。如果两台计算机环境不同,那么运行前还需要配置环境,安装依赖等等。

2.虚拟机

虚拟机就是带环境安装的一种解决方案,它可以在一个操作系统上运行另一个操作系统,但是虚拟机占用资源多、冗余步骤多、启动慢等等缺点。

3.linux容器

针对于虚拟机的缺点,linux开发了另一种虚拟化技术:linux容器。

linux容器是对进程进行隔离,即在正常进程外套了一个保护层。

4.docker

docker属于linux容器的一种封装,提供简单易用的容器使用接口,它是目前最流行的linux容器解决方案。

docker将应用程序与该程序的依赖,打包在一个文件里面,运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了docker,就不用担心环境问题。

二、docker应用

docker把应用程序及其依赖,打包在image文件里,只有通过这个文件,才能生成docker容器。image文件可以看做是容器的模板,docker根据image文件生成容器的示例,同一个image文件,可以生成多个同时运行的容器示例。

image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。

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

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

image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不是从零开始制作。

为了方便共享,image 文件制作完成后,可以上传到网上的仓库。Docker 的官方仓库 Docker Hub 是最重要、最常用的 image 仓库。此外,出售自己制作的 image 文件也是可以的。

1.示例

①将image拉取到本地

$ docker image pull library/hello-world

 利用docker image pull 命令将library/hello-world image文件拉取到本地。(library是image所在的组,可省略)

 ②运行image文件

$ docker container run hello-world

利用docker container run 命令将image文件生成一个运行的容器实例。运行之后hello world容器会自动终止。但有些容器不会自动终止,例如提供某服务,手动终止命令为

$ docker container kill [containID]

2.容器文件

image文件生成的容器示例也是一个文件,称为容器文件,即一旦容器生成,则存在image文件和容器文件,而且关闭容器不会删除容器文件。

$ docker container ls
列出本机正在运行的容器

$ docker container ls -all
列出所有容器,包括停止的容器

$ docker container rm [containerID]
删除容器文件

3.制作自己的docker容器

如果制作自己的image,需要用到Dockerfile文件,它本身是一个文本文件,用来配置image。Docker根据该文件生成二进制的image文件。

 ①编写Dockerfile文件

在项目的根目录新建.dockerignore文件,填写打包时要排除的路径,例如.git、依赖等

在项目的根目录新建Dockerfile,填写(示例):

FROM ubuntu:16.04RUN apt upgrade
RUN apt install python3
RUN apt install vim
RUN apt install pip3
EXPOSE 3000
CMD cd ..
  • FROM node:8.4 : 指定使用哪个镜像源。
  • RUN npm install : RUN指令是告诉docker在镜像内执行的命令,安装了什么等。
  • EXPOSE 3000 : 将容器3000端口暴露出来,允许外部连接这个端口。

②创建image文件

有了Dockerfile文件后,就可以使用docker image build命令创建image文件。

$ docker image build -t koa-demo .
或
$ docker image build -t koa-demo:0.0.1 .

-t表示指定image文件名字,后面还可以用冒号指定标签,如果不指定默认的标签就是latest。最后的 . 表示Dockerfile的路径,即当前路径。运行之后就可以看到生成的image文件了。

③生成容器

参考:http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

http://www.ruanyifeng.com/blog/2018/02/docker-wordpress-tutorial.html

 

 

 

 

 

 

参考自:阮一峰的网络日志

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值