docker学习记录

nnnnxcj · · 633 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

docker(version:2.2.0.5)配置镜像仓库

右上docker小图标 -> preference -> Docker Engine


在 "registry-mirrors":[] 里面写上镜像仓库地址(图中是网易的,也有阿里云的,网搜自行配置)-> apply&restart

docker简介

(正规简介网上有,简单说说个人理解,有误请指正,感谢)
它运行的时候是一个与其他进程隔离的容器,不运行的时候就是一个模板文件,可以发送到别的地方,再运行成为新的容器。把代码打包成一个镜像发送给别人,就可以无视运行代码环境配置不当的尴尬境地。比虚拟机好的地方是,我们有的时候运行程序并不需要一整个操作系统的环境功能,所以我们只用把我们需要的东西打包成镜像,十分轻量。docker 是 k8s 容器的一小部分,go语言编写。

常用基本命令

// 从镜像仓库拉取镜像到本地
docker pull 镜像名称

// 查看本地镜像(REPOSITORY,TAG,IMAGE ID,CREATED,SIZE)
docker image ls

// 启动容器,以命令行方式进行交互
docker run -it 镜像名称
exit 或者 ctrl+d 退出容器

// 查看容器启动状态(CONTAINER ID ,IMAGE, COMMAND,CREATED,STATUS,PORTS,NAMES)
docker ps -a

// 启动一个已经停止的容器
docker start 容器ID

使用docker进行开发部署流程

以打包一个小httpserver程序为例

  1. 新建文件
  • .dockerignore
    里面写上不需要被打包进docker的目录,本例没有

  • dockerfile
    内容如下,含义参见#后

FROM golang:1.14.2 #这个image文件继承自golang:1.14.2这个镜像
COPY . /go #将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/go目录。
WORKDIR /go #指定接下来的工作路径为/go
RUN go build httpserver.go #在/go目录下,运行go build httpserver.go命令,把运行完的所有东西打包进镜像
EXPOSE 8081 #将容器 8081 端口暴露出来, 允许外部连接这个端口

注:没有设置ENV,因为事先去容器里看了一下 GOPATH ,这个设置后续碰到再补,大多数工程貌似都需要,比如设置时间之类

  1. 创建镜像
    docker image build -t nie-demo:0.0.1 .
  1. 运行容器
    docker container run -p 8081:8081 -it nie-demo:0.0.1
    -p(本机端口:容器开放端口)

参考:http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html,感谢大神阮一峰


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:nnnnxcj

查看原文:docker学习记录

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

633 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传