Pros and cons of stable and unique tags in Docker image tagging | Azure Friday
Obsah:
Obrázek Docker je plán kontejnerů Docker, který obsahuje aplikaci a vše, co potřebujete ke spuštění aplikace. Kontejner je runtime instance obrázku.
V tomto tutoriálu si vysvětlíme, co je Dockerfile, jak jej vytvořit a jak vytvořit Docker image pomocí Dockerfile.
Co je Dockerfile
Dockerfile je textový soubor, který obsahuje všechny příkazy, které by uživatel mohl spustit na příkazovém řádku k vytvoření obrázku. Obsahuje všechny pokyny, které Docker potřebuje k vytvoření obrazu.
Obrázky Docker jsou tvořeny řadou vrstev souborových systémů představujících pokyny v Dockerfile obrazu, který tvoří spustitelnou softwarovou aplikaci.
Soubor Docker má následující podobu:
# Comment INSTRUCTION arguments
INSTRUCTION
nerozlišuje velká a malá písmena, ale konvencí je používat UPPERCASE pro její názvy.
Níže je seznam s krátkým popisem některých nejpoužívanějších pokynů Dockerfile:
- ARG - Tato instrukce umožňuje definovat proměnné, které mohou být předávány v době sestavení. Můžete také nastavit výchozí hodnotu. FROM - Základní obrázek pro vytvoření nového obrazu. Tato instrukce musí být první instrukcí bez komentáře v Dockerfile. Jedinou výjimkou z tohoto pravidla je situace, kdy chcete použít proměnnou v argumentu
FROM
. V takovém případě můžeFROM
předcházet jeden nebo více instrukcíARG
. LABEL - Používá se k přidání metadat do obrázku, jako je popis, verze, autor..etc. Můžete zadat více než jedenLABEL
a každá instrukceLABEL
je pár klíč-hodnota. RUN - Příkazy uvedené v této instrukci budou provedeny během procesu sestavení. Každá instrukceRUN
vytvoří novou vrstvu v horní části aktuálního obrázku. PŘIDAT - Používá se pro kopírování souborů a adresářů ze zadaného zdroje do zadaného cíle v obrazu ukotvitelného. Zdrojem mohou být místní soubory nebo adresáře nebo URL. Pokud je zdrojem lokální dechtový archiv, je automaticky vybalen do obrazu Docker. KOPIE - Podobné jakoADD
ale zdrojem může být pouze místní soubor nebo adresář. ENV - Tato instrukce umožňuje definovat proměnnou prostředí. CMD - Používá se k určení příkazu, který bude proveden při spuštění kontejneru. V Dockerfile můžete použít pouze jednu instrukciCMD
. ENTRYPOINT - Podobně jakoCMD
tato instrukce definuje, jaký příkaz bude proveden při spuštění kontejneru. WORKDIR - Tato směrnice nastavuje aktuální pracovní adresář pro instrukceRUN
,CMD
,ENTRYPOINT
,COPY
aADD
. UŽIVATEL - Nastavte uživatelské jméno neboUID
mají použít při spuštění následujících pokynůRUN
,CMD
,ENTRYPOINT
,COPY
aADD
. VOLUME - Umožňuje připojit adresář hostitelského počítače k kontejneru. EXPOZICE - Slouží k určení portu, na kterém kontejner poslouchá za běhu.
Chcete-li vyloučit přidání souborů a adresářů do obrázku, vytvořte soubor
.dockerignore
v kontextovém adresáři. Syntaxe
.dockerignore
je podobná syntaxi souboru Git's
.gitignore
.
Úplný odkaz a podrobné vysvětlení pokynů Dockerfile viz oficiální referenční stránka Dockerfile.
Vytvořte soubor Dockerfile
Nejběžnějším scénářem při vytváření obrázků Docker je vytáhnout existující obraz z registru (obvykle z Docker Hubu) a určit změny, které chcete provést na základním obrazu. Nejčastěji používaným základním obrazem při vytváření obrázků Docker je Alpine, protože je malý a optimalizovaný pro běh v RAM.
V tomto příkladu vytvoříme obrázek Docker pro server Redis. Jako základní obrázek použijeme nejnovější ubuntu 18.04.
Nejprve vytvořte adresář, který bude obsahovat soubor Dockerfile a všechny potřebné soubory:
mkdir ~/redis_docker
Přejděte do adresáře a vytvořte následující soubor Dockerfile:
cd ~/redis_docker
nano Dockerfile
Dockerfile
FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y redis-server && \ apt-get clean EXPOSE 6379 CMD
Pojďme vysvětlit význam každé z řádek v Dockerfile:
- V řádku
1
definujeme základní obraz. InstrukceRUN
která začíná v řádku3
, aktualizuje index apt, nainstaluje balíček „redis-server“ a vyčistí mezipaměť apt. Příkazy použité v pokynech jsou stejné jako příkazy, které byste použili k instalaci redis na serveru Ubuntu. InstrukceEXPOSE
definuje port, na kterém server redis poslouchá. Na posledním řádku pomocí příkazuCMD
nastavíme výchozí příkaz. to bude provedeno při spuštění kontejneru.
Uložte soubor a zavřete editor.
Budování obrazu
Dalším krokem je vytvoření obrázku. Chcete-li tak učinit, spusťte z adresáře, kde je umístěn soubor Dockerfile, následující příkaz:
docker build -t linuxize/redis.
Možnost
-t
určuje jméno obrázku a případně uživatelské jméno a značku ve formátu 'username / imagename: tag'.
Výstup procesu sestavení bude vypadat asi takto:
Sending build context to Docker daemon 3.584kB Step 1/4: FROM ubuntu:18.04 ---> 7698f282e524 Step 2/4: RUN apt-get update && apt-get install -y gosu redis-server && apt-get clean ---> Running in e80d4dd69263… Removing intermediate container e80d4dd69263 ---> e19fb7653fca Step 3/4: EXPOSE 6379 ---> Running in 8b2a45f457cc Removing intermediate container 8b2a45f457cc ---> 13b92565c201 Step 4/4: CMD ---> Running in a67ec50c7048 Removing intermediate container a67ec50c7048 ---> d8acc14d9b6b Successfully built d8acc14d9b6b Successfully tagged linuxize/redis:latest
Po dokončení procesu sestavení bude nový obrázek uveden v seznamu obrázků:
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE linuxize/redis latest d8acc14d9b6b 4 minutes ago 100MB ubuntu 18.04 7698f282e524 5 days ago 69.9MB
Provozování kontejneru
Po vytvoření obrázku spustíte z něj kontejner spuštěním:
docker run -d -p 6379:6379 --name redis linuxize/redis
Volby
-d
sdělují Dockerovi, aby spustil kontejner v odpojeném režimu, volba
-p 6379:6379
publikuje port 6379 v hostitelském počítači a volba
--name redis
určuje název kontejneru. Posledním argumentem
linuxize/redis
je název obrázku, který se používá ke spuštění kontejneru.
Po spuštění kontejneru použijte následující příkaz k zobrazení všech spuštěných kontejnerů:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7d424cd915 linuxize/redis:v0.0.1 "redis-server '--pro…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis
Chcete-li ověřit, že všechno funguje tak, jak má, použijte k připojení kontejnerového
redis-cli
:
redis-cli ping
Server redis by měl odpovědět
PONG
.
Závěr
Tento tutoriál se týkal pouze základních principů použití Dockerfiles k vytváření obrázků. Chcete-li se dozvědět více o tom, jak psát Dockerfiles a doporučené doporučené postupy, přečtěte si Osvědčené postupy pro psaní Dockerfiles.
Ve čtvrtek vydal společnost Microsoft softwarovou vývojářskou sadu navrženou tak, aby vývojářům iPhone usnadnila budování přístupu k aplikacím Bing. Pomocí aplikace SDK může vývojář vytvořit aplikaci pro iPhone, která vyhledává informace Bing pro webové informace, obrázky, videa, zprávy a záznamy z telefonního seznamu.

Vývojáři mohou dotazovat Bing pouze z aplikací postavených na rozhraní Cocoa nebo Cocoa Touch, rozhraní API pro vytváření aplikací na iPhone.
Zvětšete velikost malých rastrových rastrů Pokud jste někdy zkusili pracovat s malými obrázky, jako jsou druhy generované kamerou, víte, jak frustrující může být to, že je změníte na něco, co lze tisknout (nebo v některých případech snadno viditelné). Většina redaktorů obrázků se pokouší vyhlazovat a ostrost a někteří přidávají trochu "šumu" (náhodná data, která, naopak, mohou zvětšený obraz vypadat trochu ostřeji) na zvětšené obrázky. Ale neviděl jsem, že by někdo z nich mohl dělat ta

SmillaEnlarger zvyšuje velikost malých bitmap, jako je fotografie pořízené s mobilními telefony a zároveň minimalizují zablokování.
Jak vytvořit video s obrázky a hudbou v systému Windows 10

Chcete vytvořit video z obrázků? Zde je jednoduchý průvodce, jak převádět fotografie na videa s hudbou v systému Windows 10.