资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Opensuse13.2 系统下安装 Docker 及其使用内容来源于 PPPCloud 官网教程openSUSEDocker 支持 openSUSE 12.3 或更高版本。由于 Docker 的限制,Docker 只能运行在 64 位的主机上。Docker 不被包含在 openSUSE 12.3 和 openSUSE 13.1 的官方镜像仓库中。因此需要添加 OBS 的 虚拟化仓库 来安装 docker 包。执行下边的命令来添加虚拟化仓库(Virtualization repository):openSUSE 12.3$ sudo zypper ar -f http:/download.opensuse.org/repositories/Virtualization/openSUSE_12.3/ VirtualizationopenSUSE 13.1$ sudo zypper ar -f http:/download.opensuse.org/repositories/Virtualization/openSUSE_13.1/ Virtualization在 openSUSE 13.2 版本以后就不需要添加额外的库了。SUSE Linux Enterprise可以在 SUSE Linux Enterprise 12 或 更高版本上来运行 Docker 。这里需要注意的是由于 Docker 当前的限制,只能在 64 位位的主机上运行。安装1 更换系统源sudo zypper mr -dasudo zypper ar -fc http:/mirrors.tuna.tsinghua.edu.cn/opensuse/distribution/13.2/repo/non-oss/ non-osssudo zypper ar -fc http:/mirrors.tuna.tsinghua.edu.cn/opensuse/distribution/13.2/repo/oss/ osssudo zypper ar -fc http:/mirrors.tuna.tsinghua.edu.cn/opensuse/update/13.2-non-oss/ 13.2-non-osssudo zypper ar -fc http:/mirrors.tuna.tsinghua.edu.cn/opensuse/update/13.2/ 13.2zyppr refreshzypper refreshzypper in docker2 安装 Docker 包$ sudo zypper in docker现在已经安装完毕,让我们来启动 docker 进程$ sudo systemctl start docker设置开机启动 docker:$ sudo systemctl enable docker确认一切都是否按照预期工作:$ sudo docker run -rm -i -t busybox /bin/bash这条命令将下载和导入 opensuse 镜像,并且在容器内运行 bash,输入 exit 来退出容器。3 使用 docker 工作docker 客户端非常简单 。Docker 的每一项操作都是通过命令行来实现的,而每一条命令行都可以使用一系列的标识(flags)和参数。Usage: sudo docker flags command arguments .Example:$ docker run -i -t ubuntu /bin/bash让我们看看这个使用 docker version 命令的操作,它将返回当前安装的 Docker 客户端和进程的版本信息。$ sudo docker version这个命令不仅返回了您使用的 Docker 客户端和进程的版本信息,还返回了 GO 语言的版本信息( Docker 的编程语言 )。Client version: 0.8.0Go version (client): go1.2Git commit (client): cc3a8c8Server version: 0.8.0Git commit (server): cc3a8c8Go version (server): go1.2Last stable version: 0.8.0查看一下 Docker 客户端都能做什么我们可以通过只输入不附加任何参数的 docker 命令来运行 docker 二进制文件,这样我们就会查看到 Docker 客户端的所有命令选项。$ sudo docker会看到当前可用的所有命令行列表:Commands:attachAttach to a running containerbuild Build an image from a DockerfilecommitCreate a new image from a containers changes. . .查看 Docker 命令用法你可以更深入的去了解指定的 Docker 命令使用方法。试着输入 Docker command,这里会看到 docker 命令的使用方法:$ sudo docker attach或者你可以通过在 docker 命令中使用 -help 标识(flags)$ sudo docker images -help这将返回所有的帮助信息和可用的标识(flags):Usage: docker attach OPTIONS CONTAINERAttach to a running container-no-stdin=false: Do not attach stdin-sig-proxy=true: Proxify all received signal to the process (even in non-tty mode)注意:你可以点击这里 来查看完整的 Docker 命令行列表和使用方法。在 Docker 中运行一个 web 应用到这里我们了解了更多关于 docker 客户端的知识,而现在我们需要将学习的焦点转移到重要的部分:运行多个容器。到目前为止我们发现运行的容器并没有一些什么特别的用处。让我们通过使用 docker 构建一个 web 应用程序来运行一个 web 应用程序来体验一下。在这个 web 应用中,我们将运行一个 Python Flask 应用。使用 docker run 命令。$ sudo docker run -d -P training/webapp python app.py让我们来回顾一下我们的命令都做了什么。我们指定两个标识(flags) -d 和 -P 。我们已知是 -d 标识是让 docker 容器在后台运行。新的 -P 标识通知 Docker 将容器内部使用的网络端口映射到我们使用的主机上。现在让我们看看我们的 web 应用。This image is a pre-built image weve created that contains a simple Python Flask web application.我们指定了 training/web 镜像。我们创建容器的时候使用的是这个预先构建好的镜像,并且这个镜像已经包含了简单的 Python Flask web 应用程序。最后,我们指定了我们容器要运行的命令: python app.py。这样我们的 web 应用就启动了。注意:你可以在命令参考和 Docker run 参考查看更多 docker run 命令细节查看 WEB 应用容器现在我们使用 docker ps 来查看我们正在运行的容器。$ sudo docker ps -lCONTAINER ID IMAGE COMMAND CREATEDSTATUSPORTSNAMESbc533791f3f5 training/webapp:latest python app.py 5 seconds ago Up 2 seconds 0.0.0.0:49155-5000/tcp nostalgic_morse你可以看到我们在 docker ps 命令中指定了新的标识 -l。这样组合的 docker ps 命令会返回最后启动容器的详细信息。注意:默认情况下,docker ps 命令只显示运行中的容器。如果你还想看已经停止的容器,请加上 -a 标示。我们这里可以看到一些细节,与我们第一次运行 docker ps 命令的时候相比,这里多了一个 PORTS 列。PORTS0.0.0.0:49155-5000/tcp我们通过在 docker run 中使用 -P 标示(flags) 来将我们 Docker 镜像内部容器端口暴露给主机。提示:当我们学习如何构建镜像的时候,我们将了解更多关于如何开放 Docker 镜像端口。在这种情况下,Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 49155 上。Docker 能够很容易的配置和绑定网络端口。在最后一个例子中 -P 标识(flags)是-p 5000 的缩写,它将会把容器内部的 5000 端口映射到本地 Docker 主机的高位端口上(这个端口的通常范围是 32768 至 61000)。我们也可以指定 -p 标识来绑定指定端口。举例:$ sudo docker run -d -p 5000:5000 training/webapp python app.py这将会把容器内部的 5000 端口映射到我们本地主机的 5000 端口上。你可能现在会问:为什么我们只使用 1 对 1 端口映射的方式将端口映射到 Docker 容器, 而不是采用自动映射高位端口的方式?这里 1:1 映射方式能够保证映射到本地主机端口的唯一性。假设你想要测试两个 Python 应用程序,两个容器内部都绑定了端口 5000,这样就没有足够的 Docker 的端口映射,你只能访问其中一个。所以,现在我们打开浏览器访问端口 49155。我们的应用程序可以访问了!注意:如果你在 OS X windows 或者 Linux 上使用 boot2docker 虚拟机,你需要获取虚拟机的 ip 来代替 localhost 使用,你可以通过运行 boot2docker shell 来获取 ip。$ boot2docker ipThe VMs Host only interface IP address is: 192.168.59.103在这种情况下,你可以通过输入 http:/192.168.59.103:49155 来访问上面的例子。查看网络端口快捷方式使用 docker ps 命令来会返回端口的映射是一种比较笨拙的方法。为此,Docker 提供了一种快捷方式: docker port ,使用 docker port 可以查看指定 (ID 或者名字的)容器的某个确定端口映射到宿主机的端口号。$ sudo docker port nostalgic_morse 50000.0.0.0:49155在这种情况下,我们看到容器的 5000 端口映射到了宿主机的的 49155 端口。查看 WEB 应用程序日志让我们看看我们的容器中的应用程序都发生了什么,这里我们使用学习到的另一个命令 docker logs 来查看。$ sudo docker logs -f nostalgic_morse* Running on http:/0.0.0.0:5000/10.0.2.2 - - 23/May/2014 20:16:31 “GET / HTTP/1.1“ 200 -10.0.2.2 - - 23/May/2014 20:16:31 “GET /favicon.ico HTTP/1.1“ 404 -这次我们添加了一个 -f 标识。 docker log 命令就像使用 tail -f 一样来输出容
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号