Чӣ гуна сохтани тасвир ва бор кардани он ба сабтхона?
sobes.tech AI
Ҷавоб аз AI
Сохтмони тасвири Docker бо фармони docker build иҷро мешавад, ки Dockerfile-ро ҳамчун дастур истифода мебарад. Dockerfile қадамҳоро барои сохтани тасвир, ба монанди тасвири асосӣ, нусхабардории файлҳо, насб кардани вобастагиҳо ва танзими муҳит дар бар мегирад.
Масалан Dockerfile:
# Истифодаи тасвири асосӣ
FROM ubuntu:latest
# Насб кардани вобастагиҳо
RUN apt-get update && apt-get install -y nginx
# Нусхабардории файлҳои конфиг
COPY nginx.conf /etc/nginx/nginx.conf
# Боз кардани порт
EXPOSE 80
# Идоракунии сервери веб
CMD ["nginx", "-g", "daemon off;"]
Командаи сохтани:
# docker build -t <номи_тасвир>:<тамға> <роҳи_ба_Dockerfile>
docker build -t my-nginx-image:latest .
-t my-nginx-image:latest ба тасвир номи my-nginx-image бо тамғаи latest медиҳад.
. нишон медиҳад, ки директорияи ҳозира, ки Dockerfile дар он ҷойгир аст.
Пас аз сохтани муваффақ, тасвир дар маҳал дастрас хоҳад буд. Барои нигоҳ доштани он дар қайдгоҳ (масалан, Docker Hub ё қайдгоҳи хусусӣ), аввал бояд ба қайдгоҳ бо фармони docker login ворид шавед.
# docker login <суроғаи_қайдгоҳ>
# Барои Docker Hub, суроға нишон дода намешавад
docker login
Пас, бояд тасвирро такроран тамғагузорӣ кунед, то ки он ба суроғаи қайдгоҳ мувофиқат кунад:
# docker tag <номи_локалӣ>:<тамға> <суроғаи_қайдгоҳ>/<номи_репозиторӣ>:<тамға>
# Барои Docker Hub, агар корбар 'myuser' бошад
docker tag my-nginx-image:latest myuser/my-nginx-image:latest
Ва дар охир, тасвирро ба қайдгоҳ push кунед:
# docker push <суроғаи_қайдгоҳ>/<номи_репозиторӣ>:<тамға>
# Барои Docker Hub
docker push myuser/my-nginx-image:latest
Раванди сохтани ва push-кунӣ одатан бо системҳои CI/CD (Jenkins, GitLab CI, GitHub Actions ва ғайра) автоматӣ карда мешавад.