- 首先我们需要一个镜像仓库,这里我是用的是阿里云(个人免费)
- 搜索容器镜像服务,并且进入个人版
3. 然后创建一个命名空间,随便取
4. 创建一个镜像仓库
- 做一个自己的镜像,这里我以nginx为例,并展示一下如何直接修改docker镜像(自己的jar包啥的,打成docker镜像后续一模一样)
目录结构如下
docker pull nginx:1.14.2-alpine
编写dockerfile
FROM nginx:1.14.2-alpine
MAINTAINER wch
#将html和配置文件复制对应目录下
ADD index.html /usr/share/nginx/html/
ADD nginx.conf /etc/nginx/
RUN echo 'echo init ok!!!!!'
nginx.conf
worker_processes auto; #worker数,该值越大,处理并发量越多,可以为数字或者auto
events {
worker_connections 1024; #每个worker进程支持的最大连接数
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on; #静态服务器时开启性能大增,将in_fd文件句柄的内容发送到out_fd,反向代理时用处不大,因为反向代理时是socket不是in_fd,不符合sendfile参数要求
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65; #连接超时时长
#gzip on;
client_max_body_size 20m;
server {
listen 80; #监听的端口
location / {
root /usr/share/nginx/html; #index.html的地址
index index.html index.htm; #html入口文件名
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
index.html
<html>
<head>
<title>nginx in Docker</title>
</head>
<body>
<h2>hello world! nginx in Docker.</h2>
</body>
</html>
运行dockerfile,在dockerfile目录下运行命令(注意有个" .")
docker build -t nginx-csdn:latest .
如果还需要更改,可以运行镜像,然后进入容器中直接修改,再通过下述命令生成新镜像即可
进入容器:docker exec -it [容器id] /bin/bash
容器生成镜像docker commit -a "作者" -m "说明" [容器id] [新镜像名]:[版本号]
- 然后根据阿里云官方教程,上传镜像
首先连接docker(仅第一次需要) docker login --username=[阿里云name] registry.cn-hangzhou.aliyuncs.com
然后给镜像添加tag docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/wchimages/nginx-csdn:[镜像版本号]
最后上传镜像到云仓库,版本号就是刚才自己设置的V1.0.0
docker push registry.cn-hangzhou.aliyuncs.com/wchimages/nginx-csdn:[镜像版本号]
然后就可以再云仓库看到啦
-
发布k8s(具体配置解析下次我再单独做一期)
生成deployment的yaml文件
kubectl create deployment nginx-csdn --image=registry.cn-hangzhou.aliyuncs.com/wchimages/nginx-csdn:V1.0.0 --dry-run -o yaml > config.yaml
运行yaml文件
kubectl apply -f config.yaml
设置网络
kubectl expose deployment nginx-csdn --port=80 --target-port=80 --type=NodePort
-
效果展示