Сначала вы должны создать Dockerfile
:
Яйцо.Dockerfile:
FROM golang
WORKDIR /go/src/github.com/habibridho/simple-go
ADD . ./
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix .
EXPOSE 8888
ENTRYPOINT ./simple-go
Создайте свой образ и попробуйте запустить его.
$ docker build -t simple-go .
$ docker run -d -p 8888:8888 simple-go
Следующий шаг - передача изображения всервер.Вы можете использовать Docker Hub.Вы можете отправить изображение в хранилище и вытащить его с сервера.
- на локальном компьютере
$ docker tag simple-go habibridho/simple-go
$ docker push habibridho/simple-go
- на сервере
$ docker pull habibridho/simple-go
Следует отметить, что видимость хранилища докеров по умолчанию является общедоступной, поэтому, если ваш проект является закрытым,вам нужно изменить видимость проекта на веб-сайте Docker Hub.
Полезную информацию об этом процессе вы можете найти здесь: docker-images
Как только у нас появится изображение вНа нашем сервере мы можем запустить приложение так же, как на локальном компьютере, создав развертывание.
Ниже приведен пример развертывания.Он создает набор ReplicaSet для вызова трех модулей вашего приложения:
apiVersion: apps/v1
kind: Deployment
metadata:
name: your-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: your-app
template:
metadata:
labels:
app: your-app
spec:
containers:
- name: your-app
image: your-app:version
ports:
- containerPort: port
В этом примере:
A Развертывание с именем your-creation создано, обозначено.Поле metadata.name.
В Развертывание создается три реплицированных модуля, указанные в поле реплик.
The *Поле 1062 * selector определяет, как Deployment находит, какими модулями управлять.В этом случае вы просто выбираете метку, которая определена в шаблоне Pod (приложение: ваше приложение).
Однако возможны более сложные правила выбора, если сам шаблон Pod соответствует этому правилу.
Чтобы создать развертывание, выполните следующую команду:
$ kubectl create -f your_deployment_file_name.yaml
Более подробную информацию вы можете найти здесь: kubernetes-deployment
.