首先确定下你的linux上docker是否存在
如输入 docker images 后,提示如下,就说明不存在
那么接下来就需要做先把docker安装好,具体可以参考菜鸟教程,我的机器是centos,所以我的安装如下:
docker安装
如果你之前有docker旧版本,需要先卸载:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装 Docker Engine-Community
使用 Docker 仓库进行安装
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置稳定的仓库
使用以下命令来设置稳定的仓库。
选择国内的源地址:阿里云
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
安装完毕后,在使用 docker images 则可以看到:
说明docker还没有启动
启动docker
sudo systemctl start docker
如果想要在机器启动时docker也自启动,需要执行如下命令:
systemctl enable docker.service
再次执行docker images查看:
说明docker安装并启动成功了
验证安装
通过运行 hello-world 镜像来验证是否正确安装了 Docker Engine-Community
sudo docker run hello-world
卸载 docker
删除安装包
yum remove docker-ce
删除镜像、容器、配置文件等内容:
删除镜像、容器、配置文件等内容:
将war包做成镜像
Docker部分
创建Dockerfile文件
vi Dockerfile
FROM tomcat
COPY app.war /usr/local/tomcat/webapps/
构建镜像
docker build --no-cache -t <REGISTRY>/<IMAGE>:<TAG> .
这里要注意的是:
比如我的Docker仓库是docker hub,那么我首先到dockerHub的网站(Docker Hub)注册一个账号,比如test,那么这里的<REGISTRY> 就是test,
<IMAGE>这个是镜像,我的Dockerfile中是使用的tomcat,说以这里的镜像我使用的也是tomcat
<TAG>这个是标签,自己定义的,我定义为V1
<REGISTRY> : test(docker仓库的账号)
<IMAGE>:tomcat
<TAG>:v1
点:最后面有个点,表示Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
最终就是:
docker build --no-cache -t test/tomcat:V1 .
注意:V1的后面有个点,表示Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
docker build --no-cache -t test/tomcat:V1 .
推送到仓库
构建映像后,将其推送到您选择的Docker仓库中
docker push <REGISTRY>/<IMAGE>:<TAG>
和上面一样,最终就是:
docker push test/tomcat:V1
push成功后,登录Docker Hub , 点击myFrofile
kubernetes部分
1、创建我们镜像的部署定义
刚刚创建的我们自己的 test/tomcat:v1 镜像创建一个yaml文件
vi myapp.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
labels:
app: tomcat
spec:
replicas: 1
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: <REGISTRY>/<IMAGE>:<TAG>
ports:
- containerPort: 8080
这里的<REGISTRY>/<IMAGE>:<TAG> 依然和上面一样 test/tomcat:V1
此部署定义将基于我们的tomcat镜像(test/tomcat:V1)创建一个pod。
2、根据部署定义创建pod
kubectl create -f myapp.yml
稍等一会部署完毕后,通过下面的命令可以可以生成了一个pod
kubectl get pods
同样通过dashboard的控制台也可以看到
3、创建服务
创建一个服务的yaml文件
vi myservice.yaml
kind: Service
apiVersion: v1
metadata:
name: tomcat-service
spec:
selector:
app: tomcat
ports:
- protocol: TCP
port: 80
targetPort: 8080
根据服务的yaml文件创建一个服务
kubectl create -f myservice.yaml