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程序为例
- 新建文件
.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 ,这个设置后续碰到再补,大多数工程貌似都需要,比如设置时间之类
- 创建镜像
docker image build -t nie-demo:0.0.1 .
- 运行容器
docker container run -p 8081:8081 -it nie-demo:0.0.1
-p(本机端口:容器开放端口)
参考:http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html,感谢大神阮一峰
有疑问加站长微信联系(非本文作者)