Nazwę obrazu można ustawić podczas budowania obrazu niestandardowego, na przykład:
docker build -t dude/man:v2 . # Will be named dude/man:v2
Czy istnieje sposób na zdefiniowanie nazwy obrazu w Dockerfile, więc nie muszę o tym wspominać w docker build
poleceniu?
docker
tags
dockerfile
Gvlasov
źródło
źródło
Odpowiedzi:
Oznaczanie obrazu nie jest obsługiwane w pliku Docker. Trzeba to zrobić w poleceniu kompilacji. Aby obejść ten problem, możesz wykonać kompilację za pomocą narzędzia docker-compose.yml, które identyfikuje nazwę obrazu docelowego, a następnie uruchom plik
docker-compose build
. Przykładowy wygląd docker-compose.ymlTo powiedziawszy, istnieje nacisk na robienie kompilacji z komponowaniem, ponieważ nie działa to w przypadku wdrożeń w trybie roju. Powrócisz do uruchamiania polecenia podanego w pytaniu:
Osobiście staram się budować za pomocą małego skryptu powłoki w moim folderze (build.sh), który przekazuje wszelkie argumenty i zawiera nazwę obrazu, aby zapisać pisanie. W przypadku produkcji kompilacja jest obsługiwana przez serwer ci / cd, który ma nazwę obrazu w skrypcie potoku.
źródło
Jak zbudować obraz o niestandardowej nazwie bez użycia pliku yml:
Jak uruchomić kontener o niestandardowej nazwie:
źródło
Dockerfile
katalog o takiej samej nazwie, jak chcesz dla swojego obrazu, możesz użyć godocker build -t $(basename $PWD) .
jako polecenia kompilacji. Następnie możesz użyć wyszukiwania CTRL-R z „kompilacji”, aby znaleźć i ponownie użyć polecenia i nigdy nie trzeba go edytować. Możesz również ustawić go jako alias, jeśli chcesz.Oto kolejna wersja, jeśli musisz odwoływać się do określonego pliku dokera:
Więc po prostu biegnij
źródło
Możesz to zrobić za pomocą „AS” z Ubuntu: 16.04 AS FooImage
źródło
AS
Składnia określa nazwę docelową używany w produkcji wielostopniowy, a nazwa ta może być również stosowany w miejsce obrazu dlaCOPY --from
składni w tej kompilacji wielostopniowym. Jednak nie określa wynikowej nazwy / znacznika dla samej kompilacji.