Sobes.tech
Junior

Чӣ гуна сохтани тасвир ва бор кардани он ба сабтхона?

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 ва ғайра) автоматӣ карда мешавад.