Docker使用Dockerfile构建简单镜像
2018-06-01 13:28
597 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wf19930209/article/details/80536408
Docker使用Dockerfile构建简单镜像
首先确保系统已经安装docker
构建镜像
安装基础镜像
sudo docker pull ubuntu
查看镜像是否已经拉取成功
REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 452a96d81c30 4 weeks ago 79.6 MB centos latest e934aafc2206 7 weeks ago 199 MB
编写Dockerfile
touch Dockerfile
FROM ubuntu COPY demo_api /usr/local/bin EXPOSE 9899 CMD ["/usr/local/bin/demo_api"]
这个配置文件的意思是
- 基础镜像为ubuntu
- 将本地的demo_api二进制文件拷贝到/usr/local/bin下
- 暴露9899端口
- CMD执行这个二进制文件
EXPOSE 用来暴露端口,格式为:EXPOSE <端口1> [<端口2>……]
值得注意的是,EXPOSE 只是声明运行容器时提供的服务端口,这仅仅是一个声明,在运行容器的时候并不会因为这个声明就会开启端口服务,你依旧需要使用 -P 或者 -p 参数映射端口。在 Dockerfile 中写这样的端口声明有助于使用者理解这个镜像开放哪些服务端口,以便配置映射。并且,可以在 docker run 命令执行的时候使用 -P 参数随机映射宿主主机端口到 EXPOSE 的容器端口。
构建镜像
gorden@sung:~$ sudo docker build -t demoapi:v1.0 . Sending build context to Docker daemon 7.448 MB Step 1/4 : FROM ubuntu ---> 452a96d81c30 Step 2/4 : COPY demo_api /usr/local/bin ---> 44e68b440b1b Removing intermediate container e7db3b02db3c Step 3/4 : EXPOSE 8818 ---> Running in 5f677d533ea3 ---> 3022bc179891 Removing intermediate container 5f677d533ea3 Step 4/4 : CMD /usr/local/bin/demo_api ---> Running in 9e9f82a0780c ---> 1bcf0f228a7d Removing intermediate container 9e9f82a0780c Successfully built 1bcf0f228a7d
-t 参数后面指定镜像的名字。最后一个“ . ”指的是当前目录。
查看镜像是否存在了
gorden@sung:~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE demoapi v1.0 1bcf0f228a7d 12 seconds ago 86.3 MB ubuntu latest 452a96d81c30 4 weeks ago 79.6 MB centos latest e934aafc2206 7 weeks ago 199 MB gorden@sung:~$
从镜像运行容器
gorden@sung:~$ sudo docker run --name go_api -d -p 9899:9899 demoapi:v1.0 3d52e9e4f3c0ce1df9800aa44bb2d97b5dbb7704f0c18e46cb86551c9bfb7d0b gorden@sung:~$
查看是否正在运行
gorden@sung:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3d52e9e4f3c0 demoapi:v1.0 "/usr/local/bin/de..." 9 minutes ago Up 9 minutes 9899/tcp, 0.0.0.0:9899->9899/tcp go_api gorden@sung:~$
由于我这个二进制文件为一个go版本的简单RestFul Api所以可以在浏览器中测试:
localhost:9899/people
有返回结果,正面成功。
阅读更多相关文章推荐
- Docker学习笔记(3)-- 如何使用Dockerfile构建镜像
- 使用Dockerfile构建镜像
- 使用dockerfile构建镜像
- 如何使用Dockerfile构建镜像
- Docker学习笔记(3)-- 如何使用Dockerfile构建镜像
- 如何使用Dockerfile构建镜像
- docker筑基篇-04-使用Dockerfile构建自己的镜像
- Docker学习笔记-- 如何使用Dockerfile构建镜像
- Docker学习笔记-- 如何使用Dockerfile构建镜像
- 如何使用Dockerfile构建镜像
- 使用Dockerfile构建镜像并push到私有仓库
- 3 使用 Dockerfile 实现 自动化构建(创建) 镜像
- 如何使用Dockerfile构建镜像
- 使用Dockerfile构建支持ssh服务自启动的容器镜像
- 脉冲云[编译构建]服务----使用Dockerfile文件,在线构建Dcoker镜像
- Docker如何使用Dockerfile构建镜像
- 使用Dockerfile创建简单java应用镜像
- 使用Dockerfile构建镜像
- 使用dockerfile 构建springboot 的docker镜像
- Docker使用Dockerfile构建微服务发现镜像实例