Source-to-Image (S2I) – ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
S2I ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΠΎΡΠΎΠ²ΡΡ ΠΊ Π·Π°ΠΏΡΡΠΊΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² ΠΏΡΡΠ΅ΠΌ Π²ΡΡΠ°Π²ΠΊΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΎΠ±ΡΠ°Π· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
S2I Π΄Π°Π΅Ρ Π²Π°ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΡΠ΅Π΄Ρ ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°Π·Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ S2I Toolkit Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ Linux ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Source-To-Image (S2I) Toolkit Π½Π° Linux
Π‘ΠΊΠ°ΡΠ°Π΅ΠΌ Π°ΡΡ ΠΈΠ² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Source-To-Image (S2I), ΡΠ°ΡΠΏΠ°ΠΊΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π² PATH Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅Π»ΠΈΠ·ΠΎΠ² ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ², ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π° 32-Π±ΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ linux-386 ΠΈΠ»ΠΈ linux-amd64 Π΄Π»Ρ 64-Π±ΠΈΡΠ½ΠΎΠΉ.
mkdir /tmp/s2i/ && cd /tmp/s2i/
# Linux
curl -s https://api.github.com/repos/openshift/source-to-image/releases/latest| grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
# macOS
curl -s https://api.github.com/repos/openshift/source-to-image/releases/latest| grep browser_download_url | grep darwin-amd64 | cut -d '"' -f 4 | wget -qi -
ΠΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΡΠΏΠ°ΠΊΡΠΉΡΠ΅ tar Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
$ tar xvf source-to-image*.gz
./
./sti
./s2i
Π€Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎ ΠΏΡΡΠΈ /usr/local/bin.
sudo mv s2i /usr/local/bin
rm -rf /tmp/s2i/
ΠΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ.
$ which s2i
/usr/local/bin/s2i
$ s2i version
s2i v1.4.0
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
$ s2i --help
Source-to-image (S2I) is a tool for building repeatable docker images.
A command line interface that injects and assembles source code into a docker image.
Complete documentation is available at http://github.com/openshift/source-to-image
Usage:
s2i [flags]
s2i [command]
Available Commands:
build Build a new image
completion Generate completion for the s2i command (bash or zsh)
create Bootstrap a new S2I image repository
rebuild Rebuild an existing image
usage Print usage of the assemble script associated with the image
version Display version
Flags:
--ca string Set the path of the docker TLS ca file (default "/home/jmutai/.docker/ca.pem")
--cert string Set the path of the docker TLS certificate file (default "/home/jmutai/.docker/cert.pem")
--key string Set the path of the docker TLS key file (default "/home/jmutai/.docker/key.pem")
--loglevel int32 Set the level of log output (0-5)
--tls Use TLS to connect to docker; implied by --tlsverify
--tlsverify Use TLS to connect to docker and verify the remote
-U, --url string Set the url of the docker socket to use (default "unix:///var/run/docker.sock")
Use "s2i [command] --help" for more information about a command.
Π§ΡΠΎΠ±Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ S2I, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ s2i create <image name> <destination directory>
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΊΠ΅Π»Π΅ΡΠ½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ .s2i ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ² S2I, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²Π·Π»ΠΎΠΌΠ°. Π‘ΠΌ. ΠΏΡΠΈΠΌΠ΅Ρ:
mkdir /tmp/s2i-test && cd /tmp/s2i-test
s2i create cent9-app .
ΠΠ΅ΡΠ΅Π²ΠΎ:
$ tree
.
βββ Dockerfile
βββ Makefile
βββ README.md
βββ s2i
βΒ Β βββ bin
βΒ Β βββ assemble
βΒ Β βββ run
βΒ Β βββ save-artifacts
βΒ Β βββ usage
βββ test
βββ run
βββ test-app
βββ index.html
4 directories, 9 files
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Source-To-Image (S2I) Π½Π°Β Linux
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ S2I, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Software Collections S2I, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ°Ρ ΠΏΡΠΈΠΌΠ΅Ρ – Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Nginx.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ Dockerfiles Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ² Nginx Π΄Π»Ρ OpenShift.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ°Π·Π°ΠΌΠΈ Π½Π° Π±Π°Π·Π΅ RHEL ΠΈ CentOS.
git clone --recursive https://github.com/sclorg/nginx-container.git
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ Nginx.
cd nginx-container
git submodule update --init
cd 1.26
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π²Π΅ΡΡΠΈΠΉ Nginx ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1.26 Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ Π²ΡΡΠ΅.
Π€Π°ΠΉΠ»Ρ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π² ΡΠ΅ΠΏΠΎ
Π€Π°ΠΉΠ» | Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ? | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|
Dockerfile | ΠΠ° | ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π±Π°Π·ΡΠΉ ΠΎΠ±ΡΠ°Π· |
s2i/bin/assemble | ΠΠ° | Π‘ΠΊΡΠΈΠΏΡ, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ |
s2i/bin/usage | ΠΠ΅Ρ | Π‘ΠΊΡΠΈΠΏΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° |
s2i/bin/run | ΠΠ° | Π‘ΠΊΡΠΈΠΏΡ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ |
s2i/bin/save-artifacts | ΠΠ΅Ρ | Π‘ΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΡΡ ΡΠ±ΠΎΡΠΎΠΊ, ΡΠΎΡ ΡΠ°Π½ΡΡΡΠΈΠΉ ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ |
test/run | ΠΠ΅Ρ | Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π·Π° |
test/test-app | ΠΠ° | Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ |
ΠΠΎΠ³Π΄Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ bbuilder-ΠΎΠ±ΡΠ°Π· Fedora Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ nginx-fedora.
docker||podman build -f Dockerfile.fedora -t nginx-fedora .
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ±ΡΠ°Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π· ΡΠ±ΠΎΡΡΠΈΠΊΠ° Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π· Dockerfile, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠ° assemble ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΊΡΠΈΠΏΡΠ° run.
Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Openshift Container.
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
$ cd nginx-container/1.26
$ s2i build test/test-app nginx-fedora nginx-fedora-app
---> Installing application source
---> Copying nginx.conf configuration fileβ¦
'./nginx.conf' -> '/etc/opt/rh/rh-nginx124/nginx/nginx.conf'
---> Copying nginx configuration filesβ¦
'./nginx-cfg/default.conf' -> '/opt/app-root/etc/nginx.d/default.conf'
---> Copying nginx default server configuration filesβ¦
'./nginx-default-cfg/alias.conf' -> '/opt/app-root/etc/nginx.default.d/alias.conf'
---> Copying nginx start-hook scriptsβ¦
Build completed successfully
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, Π·Π°Π΄Π°Π½Π½ΡΡ Π² ΡΠΊΡΠΈΠΏΡ ΡΠ±ΠΎΡΠΊΠΈ, s2i ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠ±ΡΠ°Π· ΡΠ±ΠΎΡΡΠΈΠΊΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ ΠΈ Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° test/test-app.
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΠΎΠ·Π΄Π°Π½ Π»ΠΈ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
$ docker images | grep nginx-centos7-app
nginx-centos7-app latest 59cbe8e707c7 About a minute ago 320MB
ΠΠ°ΠΏΡΡΠΊ ΠΎΠ±ΡΠ°Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΡΠ·Π²Π°Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ docker run:
docker run -d -p 8080:8080 nginx-centos7-app
Π Π°Π·Π²Π΅ΡΠ½ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://localhost:8080.
ΡΠΌ. ΡΠ°ΠΊΠΆΠ΅:
- π³Β ΠΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΎΡΡΠ°Π²ΡΠ΅Π΅ΡΡ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Docker Overlay
- π³Β ΠΡΠ±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ Docker Compose ΠΈ Docker Swarm
- π³Β Π Π°Π·ΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π·Π° Docker: ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ
- π³Β ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Docker Π½Π° Ubuntu Ρ ΠΏΠΎΠΌΠΎΡΡΡ bash ΡΠΊΡΠΈΠΏΡΠ°
- π³Β ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»ΡΠΆΠ±Π΅, Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΉ Π½Π° Π²Π°ΡΠ΅ΠΌ Ρ ΠΎΡΡΠ΅ Docker, ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°
- π³Β ΠΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ: Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Docker Π½Π° Windows 11 ΠΈ 10
- π³Β ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΎΠ±ΡΠ°Π·Π°ΠΌΠΈ Docker