大家好 docker 核心技术之docker初窥

2年前 (2017-04-14) admin docker 0评论 已收录 1362℃

最近比较忙好长时间没写技术博客了,由于之前的今天心情好点了,开始写篇玩玩,走走运气,期望能走走运气,谢谢大家支持 。

2017年04月14日 星期五 15时33分06秒  -0.195124 秒

大家好 docker 核心技术分享

一    docker是什么?

docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

二.Docker能做什么?

当然可以在 Docker 里面运行Linux windows系统吗?当然可以。

当然可以在 Docker 里面运行数据库吗?   当然可以。

可以在 Docker 里面运行 www网站服务器吗?当然可以。

可以在 Docker 里面运行 API 服务器吗? 当然可以。

可以在 Docker 里面运行 邮件 服务器吗? 当然可以。

凡事你能想到的应用或者服务docker就能整合到里面。

 

 

Docker可以解决虚拟机能够解决的问题,同时也能够解决虚拟机由于资源要求过高而无法解决的问题。

Docker能处理的事情包括:

 

隔离应用依赖

创建应用镜像并进行复制

创建容易分发的即启即用的应用

允许实例简单、快速地扩展

测试应用并随后销毁它们

 

 

 

Docker背后的想法是创建软件程序可移植的轻量容器,让其可以在任何安装了Docker的机器上运行,而不用关心底层操作系统,就像野心勃勃的造船者们成功创建了集装箱而不需要考虑装在哪种船舶上一样,Docker 并不在乎你的应用程序是什么、做什么,Docker 提供了一组应用打包、传输和部署的方法,以便你能更好地在容器内运行任何应用。

 

四:dockerfile核心语法

FROM 指定构建镜像的基础源镜像,如果本地没有指定的镜像,则会自动从 Docker 的公共库 pull 镜像下来

MAINTAINER <name>    指定创建镜像的用户

EXPOSE  告诉 Docker 服务端容器对外映射的本地端口,要在 docker run 的时候使用 -p 或者 -P 选项生效。

ENV

ENV <key> <value>       # 只能设置一个变量

ENV <key>=<value> ...   # 允许一次设置多个变量

ADD 复制本地主机文件、目录或者远程文件 URLS 从 并且添加到容器指定路径中 。

COPY 复制新文件或者目录从 并且添加到容器指定路径中 。用法同 ADD,唯一的不同是不能指定远程文件 URLS。

VOLUME ["/data"]             创建一个可以从本地主机或其他容器挂载的挂载点,后续具体介绍。

USER daemon       指定运行容器时的用户名或 UID,后续的 RUN、CMD、ENTRYPOINT 也会使用指定用户。

WORKDIR /path/to/workdir     为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。

ONBUILD      配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。

五:docker的四种网络模式

  1. host模式 :

docker run 使用 --net=host指定

docker使用的网络实际上和宿主机一样

  1. container模式:

使用 --net=container:container_id/container_name

多个容器使用共同的网络,看到的ip是一样的。

  1. none 模式

使用 --net=none指定

这种模式下,不会配置任何网络。

  1. bridge模式

使用 --net=bridge指定

默认模式,不会指定

此模式会为每个容器分配一个独立的network namespace

六:构建 Docker 私有库

下载镜像      docker  run -d  -d  -p 5000:5000 -v$PWD/data:/var/lib/registry --name ragistry registry

mkdir -p /home/reg

cd /home/reg/

重启之后自启动  docker  run -d  -d  -p 5000:5000 -v$PWD/data:/var/lib/registry  --restart always  --name ragistry registry

打上标签 docker   tag ubuntu  192.168.116.83:5000/ubuntu

把刚才打tag 的包推进仓库里     docker  push 192.168.116.83:5000/ubuntu

在镜像服务server端倒入      docker  pull localhost:5000/ubuntu

客户端拉取      docker  pull   192.168.116.83:5000/ubuntu

docker-compose.yml

# docker  run -d  -d  -p 5000:5000 -v$PWD/data:/var/lib/registry  --restart always  --name ragistry registry

ragistry:

image: registry

container_name: registry

ports:

- "5000:5000"

volumes:

- ./data:/var/lib/registry

restart: always

docker-compose  up     -d

 

由于知识点比较多,以下在导图里体现

https://www.wfuzz.com/s.php?sid=xk7A22

docker核心技术导图

docker核心技术导图

 

博主

让学习成为习惯,坚持-共享-开源-自由! 成功者决不放弃,放弃者绝不成功!

相关推荐

嗨、骚年、快来消灭0回复。