Docker入门
2016-12-30 14:22:10 0 举报
AI智能生成
Docker是一种开源的应用容器引擎,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker的主要优点包括:更小的体积和更快的启动速度;跨平台性,可以在任何支持Docker的机器上运行;更好的隔离性和安全性;更容易管理和部署应用程序。总之,Docker是一个非常有用的工具,可以帮助开发者更快速、更高效地构建、测试和部署应用程序。
作者其他创作
大纲/内容
Docker仓库
Docker 使用类似 git 的方式管理镜像。通过基本的镜像可以定制创建出来不同种应用的 Docker 镜像。Docker Hub 是 Docker 官方提供的镜像中心。在这里可以很方便地找到各类应用、环境的镜像。由于 Docker 使用联合文件系统,所以镜像就像是夹心饼干一样一层层构成,相同底层的镜像可以共享。所以 Docker 还是相当节约磁盘空间的。要使用一 个镜像,需要先从远程的镜像注册中心拉取,这点非常类似 git。 docker pull ubuntu
安装
CentOS7
1.使用 yum 从软件仓库安装 Docker:yum install docker
2.首先启动 Docker 的守护进程:service docker start
3.如果想要 Docker 在系统启动时运行,执行:chkconfig docker on
Docker 在 CentOS 上好像和防火墙有冲突,应用防火墙规则后可能导致 Docker 无法联网,重启 Docker 可以解决。
运行一个容器
使用 Docker 最关键的一步就是从镜像创建容器。有两种方式可以创建一个容器:使用
docker create 命令创建容器,或者使用 docker run 命令运行一个新容器。两个命令并没有太大差别,只是前者创建后并不会立即启动容器。 创建镜像
Docker 强大的威力在于可以把自己开发的应用随同各种依赖环境一起打包、分发、运行。要创建一个新的 Docker 镜像,通常基于一个已有的 Docker 镜像来创建。Docker 提供了两种方式来创建镜像:把容器创建为一个新的镜像、使用 Dockerfile 创建镜像。
子主题
概念
镜像
我们可以理解为一个预配置的系统光盘,这个光盘插入电脑后就可以启动一个操作系统。当然由于是光盘,所以你无法修改它或者保存数据,每次重启都是一个原样全新的系统。Docker 里面镜像基本上和这个差不多。
容器
同样一个镜像,我们可以同时启动运行多个,运行期间的产生的这个实例就是容器。把容器内的操作和启动它的镜像进行合并,就可以产生一个新的镜像。
it's what?
Docker 是一种容器技术,它可以将应用和环境等进行打包,形成一个独立的,类似于 iOS 的 APP 形式的「应用」,这个应用可以直接被分发到任意一个支持 Docker 的环境中,通过简单的命令即可启动运行。Docker 是一种最流行的容器化实现方案。和虚拟化技术类似,它极大的方便了应用服务的部署;又与虚拟化技术不同,它以一种更轻量的方式实现了应用服务的打包。使用 Docker 可以让每个应用彼此相互隔离,在同一台机器上同时运行多个应用,不过他们彼此之间共享同一个操作系统。Docker 的优势在于,它可以在更细的粒度上进行资源的管理,也比虚拟化技术更加节约资源。
存储
在 Docker 容器运行期间,对文件系统的所有修改都会以增量的方式反映在容器使用的联合文件系统中,并不是真正的对只读层数据信息修改。每次运行容器对它的修改,都可以理解成对夹心饼干又添加了一层奶油。这层奶油仅供当前容器使用。当删除 Docker 容器,或通过该镜像重新启动时,之前的更改将会丢失。这样做并不便于我们持久化和共享数据。Docker 的数据卷这个东西可以帮到我们。
网络
Docker 容器内的系统工作起来就像是一个虚拟机,容器内开放的端口并不会真正开放在主机上。可以使我们的容器更加安全,而且不会产生容器间端口的争用。想要将 Docker 容器的端口开放到主机上,可以使用类似端口映射的方式。
Docker 容器内的系统工作起来就像是一个虚拟机,容器内开放的端口并不会真正开放在主机上。可以使我们的容器更加安全,而且不会产生容器间端口的争用。想要将 Docker 容器的端口开放到主机上,可以使用类似端口映射的方式。
在 Docker 容器创建时,通过指定 -p 参数可以暴露容器的端口在主机上:
docker run -it -p 22 ubuntu sh -c '/bin/bash'现在我们就将容器的 22 端口开放在了主机上,注意主机上对应端口是自动分配的。如果想要指定某个端口,可以通过 -p [主机端口]:[容器端口] 参数指定。
容器和容器之间想要网络通讯,可以直接使用 --link 参数将两个容器连接起来。例如 WordPress 容器对 some-mysql 的连接:
docker run --name some-wordpress --link some-mysql:mysql -p 8080:80 -d wordpress
0 条评论
下一页