文件目录

Dockerfile 是docker制作镜像的文件,docker_run.sh是sh文件,gin_test是go编译之后的linux可执行程序,gintest.env是配置文件夹

首先写一个Dockerfile的文件 用来执行build 编译为镜像

# Dockerfile

# 下载基础镜像 这相当于电脑windows系统 所有一切都要在该系统上操作
FROM ubuntu:latest # WORKDIR 指定容器中的工作目录,默认文件都是在哪保存执行
# WORKDIR /webapp/ # 暴露镜像的端口供主机做映射,不过一般都是直接docker run ... -p 宿主机端口:容器端口 ... 设置了 可以设置多个
EXPOSE
EXPOSE # COPY 将主机的文件复制到镜像内 其中ADD和COPY一样 但是ADD会对压缩文件(tar, gzip, bzip2, etc)做提取和解压操作
# COPY如果目的位置不存在,Docker会自动创建所有需要的目录结构,但是它只是单纯的复制,并不会去做文件提取和解压工作
COPY gin_test .
COPY gintest.env . # VOLUME 用来向基于镜像创建的容器添加卷。
# 比如你可以将mongodb镜像中存储数据的data文件指定为主机的某个文件。(容器内部建议不要存储任何数据)
# VOLUME 主机目录 容器目录
# VOLUME /data/db /data/configdb # 镜像内部的执行... 下载数据软件等... 并不是在宿主机上执行 而是到镜像中执行的命令
# 比如这些命令RUN、COPY、ADD、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME
# 容器内部执行apt更新
# RUN ["apt-get" "update"] # 容器启动时执行指令 ENTRYPOINT
# CMD docker run -it -d -p : ubuntu

# docker_run.sh

#!/bin/bash
# docker build 根据当前目录的Dockerfile文件内容制作镜像 . 代表当前目录(可以绝对路径) -t表示设置镜像名字
docker build -t myweb . # 加载镜像启动容器 根据镜像名字设置启动模式 -itd 表示后台命令行模式... -p在宿主机和容器开启的端口连接一起
# /bin/bash 表示在容器内部执行一些命令但不进入 -c 如果需要找容器内部执行命令 必须有-c 后面这是执行命令 启动容器内复制过去的./gin_test
docker run -itd -p : --name="myweb_docker_one" myweb /bin/bash -c ./gin_test # 展示docker容器的执行状况
docker ps # 持续监控docker容器内部的输出日志 -t 监控日志 --tail 只显示多少条
# docker logs -t --tail= myweb_docker_one # 进入容器内部 docker exec -it 容器名字 bash 执行命令行模式 如何有其他需求可以进入内部执行,不过一般都在创建容器阶段执行了
# docker exec -it myweb_docker_one bash # 进入容器内部执行 接上面的命令
# ./gin_test

将工作目录的四个文件拉取到linux服务器上,最好同一个目录下

注意 docker_run.sh 和gin_test 需要进行添加执行权限

chmod +x docker_run.sh
chmod +x gin_test

还有如果sh文件在win上写的,在linux上执行需要转换格式,不然出错

格式化命令如下

# vim打开sh文件
vim docker_run.sh # 输出
:set fileformat=unix

链接

执行sh文件

# 已输出每行命令的格式执行

bash -x docker_run.sh

输出如下

测试能否外部访问内部web程序

能看到访问该服务器宿主机ip和端口能访问到 容器内的web程序

最新文章

  1. spark-sql性能测试
  2. SQL Server 2005使用作业设置定时任务(转)
  3. iOS开发——UI篇Swift篇&玩转UItableView(二)高级功能
  4. JAVA实现word doc docx pdf excel的在线浏览 - 仿百度文库 源码
  5. (转载)PHP 判断常量,变量和函数是否存在
  6. android 34 ListView进阶
  7. CentOS5、6 NFS的安装配置及mount方法
  8. oracle添加sequence
  9. Java 代码质量
  10. matlab学习日志之并行运算
  11. iframe内document事件监听
  12. CkEditor批量上传图片(java)
  13. .Net Core 中间件之主机地址过滤(HostFiltering)源码解析
  14. JarvisOJ Basic 美丽的实验室Logo
  15. Redhat 用代理连外网
  16. Java之NIO
  17. 林兴爆料小程序很快可以支持各个 App 直接打开小程序
  18. leecode第二十三题(合并K个排序链表)
  19. eclipse开发go语言入门案例
  20. ping命令技巧详解 windows下ping命令知识大全

热门文章

  1. 吴裕雄--天生自然 JAVASCRIPT开发学习:对象 实例(2)
  2. python 入门手册
  3. springboot学习笔记:3.配置文件使用概要
  4. AngularJS中格式化日期为指定格式字符串
  5. codeigniter注意点
  6. 整数拆分-dp问题
  7. 签章新的pom文件
  8. js 创建对象的多种方式
  9. 转:zabbix 2.4.4 更换 logo
  10. 添砖加瓦:Linux /proc目录简介