当前位置:首页>综合>正文

如何在Docker中设置Go并部署应用 如何让Windows 8/Windows 10用户也用上Docker

2023-04-25 12:38:48 互联网 未知 综合

 如何在Docker中设置Go并部署应用 如何让Windows 8/Windows 10用户也用上Docker

如何在Docker中设置Go并部署应用

步骤一 - 创建Dockerfile
如下的Dockerfile可以满足以上的要求:
**FROM** golang:1.6
*# Install beego and the bee dev tool*
**RUN** go get github.com/astaxie/beego && go get github.com/beego/bee
*# Expose the application on port 8080*
**EXPOSE** 8080
*# Set the entry point of the container to the bee command that runs the*
*# application and watches for changes*
**CMD** ["bee", "run"]
第一行,
FROM golang:1.6
将Go的官方映像文件作为基础映像。该映像文件预安装了 Go 1.6 . 该映像已经把 $GOPATH 的值设置到了 /go 。所有安装在 /go/src 中的包将能够被go命令访问。
第二行,
RUN go get github.com/astaxie/beego && go get github.com/beego/bee
安装 beego 包和 bee 工具。 beego 包将在应用程序中使用。 bee 工具用语在开发中再现地重新加载我们的代码。
第三行,
EXPOSE 8080
在开发主机上利用容器为应用程序开放8080端口。
最后一行,
CMD ["bee", "run"]
使用bee命令启动应用程序的在线重新加载。
步骤二 - 构建image
一旦创建了Docker file,运行如下的命令来创建image:
docker build -t ma-image .
执行以上的命令将创建名为ma-image的image。该image现在可以用于使用该应用程序的任何人。这将确保这个团队能够使用一个统一的开发环境。
为了查看系统上的image列表,运行如下的命令:
docker images
这行该命令将输出与以下类似的内容:
REPOSITORY TAG IMAGE ID CREATED SIZE
ma-image latest 8d53aa0dd0cb 31 seconds ago 784.7 MB
golang 1.6 22a6ecf1f7cc 5 days ago 743.9 MB
注意image的确切名字和编号可能不同,但是,应该至少看到列表中有 golang 和 ma-image image。
步骤三 - 运行容器
一旦 ma-image 已经完成,可以使用以下的命令启动一个容器:
docker run -it --rm --name ma-instance -p 8080:8080
-v /app/MathApp:/go/src/MathApp -w /go/src/MathApp ma-image

如何让Windows 8/Windows 10用户也用上Docker

下面是安装 Docker 客户端并在上面运行容器的简单步骤。 1. 下载 Boot2Docker 在开始安装之前,需要 Boot2Docker 的可执行文件。可以从 它的 Github 下载最新版本的 Boot2Docker。在这篇指南中,从网站中下载版本 v1.6.1。从那网页中用喜欢的浏览器或者下载管理器下载了名为 docker-install.exe 的文件。 2. 安装 Boot2Docker 现在运行安装文件,它会安装 Window Docker 客户端、用于 Windows 的 Git(MSYS-git)、VirtualBox、Boot2Docker Linux ISO 以及 Boot2Docker 管理工具,这些对于开箱即用地运行全功能的 Docker 引擎都至关重要。 3. 运行 Boot2Docker 安装完成必要的组件之后,从桌面上的“Boot2Docker Start”快捷方式启动 Boot2Docker。它会要求你输入以后用于验证的 SSH 密钥。然后会启动一个配置好的用于管理在虚拟机中运行的 Docker 的 unix shell。 为了检查是否正确配置,运行下面的 docker version 命令。 docker version 4. 运行 Docker 由于 Boot2Docker Start 自动启动了一个已经正确设置好环境变量的 shell,可以马上开始使用 Docker。请注意,如果要将 Boot2Docker 作为一个远程 Docker 守护进程,那么不要在 docker 命令之前加 sudo。 现在,来试试 hello-world 例子镜像,它会下载 hello-world 镜像,运行并输出 "Hello from Docker" 信息。 $ docker run hello-world 5. 使用命令提示符(CMD) 运行 Docker 现在,如果想开始用命令提示符使用 Docker,可以打开命令提示符(CMD.exe)。由于 Boot2Docker 要求 ssh.exe 在 PATH 中,需要在命令提示符中输入以下命令使得 %PATH% 环境变量中包括 Git 安装目录下的 bin 文件夹。

如何编写 docker dockerfile

如何使用
Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等。当前目录下包含Dockerfile,使用命令build来创建新的image,并命名为edwardsbean/centos6-jdk1.7:
docker build -t edwardsbean/centos6-jdk1.7 .

Dockerfile关键字
如何编写一个Dockerfile,格式如下:
# CommentINSTRUCTION arguments

FROM
基于哪个镜像
RUN
安装软件用
MAINTAINER
镜像创建者
CMD
container启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD.
CMD主要用于container时启动指定的服务,当docker run command的命令匹配到CMD command时,会替换CMD执行的命令。如:
Dockerfile:
CMD echo hello world

运行一下试试:
edwardsbean@ed-pc:~/software/docker-image/centos-add-test$ docker run centos-cmd
hello world

一旦命令匹配:
edwardsbean@ed-pc:~/software/docker-image/centos-add-test$ docker run centos-cmd echo hello edwardsbean
hello edwardsbean

ENTRYPOINT
container启动时执行的命令,但是一个Dockerfile中只能有一条ENTRYPOINT命令,如果多条,则只执行最后一条
ENTRYPOINT没有CMD的可替换特性
USER
使用哪个用户跑container
如:
ENTRYPOINT ["memcached"]
USER daemon

EXPOSE
container内部服务开启的端口。主机上要用还得在启动container时,做host-container的端口映射:
docker run -d -p 127.0.0.1:33301:22 centos6-ssh

container ssh服务的22端口被映射到主机的33301端口
ENV
用来设置环境变量,比如:
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8

ADD
将文件拷贝到container的文件系统对应的路径 所有拷贝到container中的文件和文件夹权限为0755,uid和gid为0 如果文件是可识别的压缩格式,则docker会帮忙解压缩 如果要ADD本地文件,则本地文件必须在 docker build ,指定的目录下 如果要ADD远程文件,则远程文件必须在 docker build ,指定的目录下。比如: docker build github.com/creack/docker-firefox docker-firefox目录下必须有Dockerfile和要ADD的文件 注意:使用docker build - < somefile方式进行build,是不能直接将本地文件ADD到container中。只能ADD url file. ADD只有在build镜像的时候运行一次,后面运行container的时候不会再重新加载了。 VOLUME 可以将本地文件夹或者其他container的文件夹挂载到container中。 WORKDIR 切换目录用,可以多次切换(相当于cd命令),对RUN,CMD,ENTRYPOINT生效 ONBUILD ONBUILD 指定的命令在构建镜像时并不执行,而是在它的子镜像中执行