ืฉืืื ืืืืื! ืื
ืืื
ืืื ืืชืืื ืืขืจื ืืฉืื ืฉื ืกืคืืืืจ ืืฉื ืืงืืชื ืืช ืืืืื ื ืฉืฉืืจืชื ื-$5 ื-Digital Ocean, ืฉืืืงืคืื ืืฉื ืืขืืืื ืฉืืืงืจ ืืืืื ืืช ืื 24 ืืืืื-ืืืื ืฉื ืฉืื ืืืกืง ืคื ืื ืืชืืื ืืช ืืืืืืืืช ืฉืื. ืืืืจืื ืื ืืืืชื ืฉืื ืืชืืื ืืช ืืืืืืืื ืืืื ืืื ืืจืขืืื ืืืื ื ืืืฆืื ืจืง ืืื ืืืืืง ืืช ืืืืฆืืขืื ืฉื ืืืคืืืงืฆืื ืฉืื ืืื ืคืขื ืฉืืจืกื ืืืฉื ืฉื ืกืคืจืืื ืื ืืกืืจืช ืฉืืืจืจื. ื ืืกืืชื ืืืชืื ืกืงืจืืคืืื ืฉื ืืขืืคืช ืืืืืืืจ ืืื ืืื ืื ืฉื ืงืจืื ืื ืืงืื ืืื, ืืื ืื ืื ืขืืจ: ืื ืคืขื ืื ืืกืชืืื ืืืืจื ืืื ืฉืฉืื ืืืืกืง ืฉื ืืฉืจืช ืฉืื ื ืืื ืืืฉืจืช ื ืชืงืข (ืืืงืจื ืืืื). ืืฉืื ืืกืืื, ื ืชืงืืชื ืืืืืจ ืขื ืืื ืืืคืขืื ืืช Jenkins ืืงืื ืืืื ืจ ืืืืฆื ืืื ืืืื ืืืฆืืจ ืืืืืืง ืฆืื ืืจืืช ืื ืืื ืืจื ืฉืงืข Docker daemon ืืืืขืืจ ืืืื. ืืืืชื ืืช ืืจืขืืื, ืืื ืืืืืชื ืืืืช ืจืืืง ืืืชืจ ืืื ืกืืช ืืืชื ืกืืช ืืืคืขืืช Docker ืืฉืืจืืช ืืชืื Docker. ืืืืชื ืืื ื ืจืื ืื ืคืชืจืื ืืืืื ื ืืืืืืื ืืืืจืื ืชืืื ืืช Docker ืืืืฆืืจ ืงืื ืืืื ืจืื ืืื ืืืคืืืงืฆืืืช ืฉืืืืชื ืฆืจืื ืืืืืงื ืืชืื ืงืื ืืืื ืจ ืืืจ (ืืืื ื ืงืจื ืืื ืงืื ืืืื ืจ ืกืืืืื ื). ืืจืขืืื ืืื ืืืชืืื ืงืื ืืืื ืจ ืกืืืืื ื ืขื ืืืื -rm, ืฉืืืืง ืืืืืืืืช ืืช ืื ืืงืื ืืืื ืจ ืืืช ืื ืชืืืืชื ืืืฉืจ ืืื ื ืขืฆืจ. ืืชืขืกืงืชื ืืชืืื ืช Docker ื-Docker ืขืฆืื (
ืชืจืืื. ืงืื ืืกืื
ืืฆืืชื ืืืจืื ืืืืื ืืขืืื ืืื ืฉืืืืชื ืฆืจืื ืืืืฉืืชื ืื ืืกืืืื ืฉืื, ืฉืื ืืื ืืื ืกืคืืจ ื ืืฆื ืื. ืืชืืฆืื ืฉื ืืขืื ืื ืืขืฆืื ืฉืื ืืืืชื ืืืืืืจืืชื ืืื:
-
ืื ื ืืฉืืงืื ืืช ืืืื Docker ืืืฆื ืืื ืืจืืงืืืื.
docker run --privileged -it docker:18.09.6
ืฉืืื ืื ืืืจืกื ืฉื ืืืืื, ืฆืขืื ืืืื ื ืื ืฉืืืื ืื-DinD ืฉืืื ืืืคื ืืืืขืช. ืืืขืฉื, ืืืจืื ื ืฉืืจืื ืืขืชืื ืงืจืืืืช ืืืื ืืืฉืจ ืืจืกื ืืืฉื ืืฉืืืจืจืช.
ืขืืื ื ืืืืื ืก ืืื ืืงืืืคื. -
ืื ืื ื ืื ืกืื ืืืจืจ ืืืื ืงืื ืืืื ืจืื ืคืืขืืื (ืชืฉืืื: ืืื), ืืื ืืื ื ืจืืฅ ืืช ืืคืงืืื ืืื ืืืช:
docker ps
ืชืชืคืืื ืงืฆืช, ืืื ืืกืชืืจ ืฉืืืื ื-Docker ืืคืืื ืื ืคืืขื:
error during connect: Get http://docker:2375/v1.40/containers/json: dial tcp: lookup docker on 192.168.65.1:53: no such host
-
ืืืื ื ืจืืฅ ืืช ืื ืืขืฆืื ื:
dockerd &
ืขืื ืืคืชืขื ืื ื ืขืืื:
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Iptables not found
-
ืืชืงื ืืช ืืืืืืช iptables ืืืืืืืช bash (ืืื ืืืชืจ ื ืขืื ืืขืืื ื-bash ืืืฉืจ ื-sh):
apk add --no-cache iptables bash
-
ืืืื ื ืฉืืง ืืช ื-bash. ืกืืฃ ืกืืฃ ืืืจื ื ืืงืืืคื ืืจืืืื
-
ืืื ื ื ืกื ืืืคืขืื ืืช Docker ืฉืื:
dockerd &
ืื ื ืืืืจืื ืืจืืืช ืืืืืื ืืจืื ืฉื ืืืื ืื ืืืกืชืืื ื:
INFO[2019-11-25T19:51:19.448080400Z] Daemon has completed initialization INFO[2019-11-25T19:51:19.474439300Z] API listen on /var/run/docker.sock
-
ืืืฅ ืื ืืจ. ืืืจื ื ืืืืฉื.
ืืขืชื, ื ืืื ืื ืกืืช ืืืฉืืง ืงืื ืืืื ืจืื ืืืจืื ืืชืื ืงืื ืืืื ืจ Docker ืฉืื ื, ืืื ืื ืื ื ืจืฆื ืืืฉืืง ืงืื ืืืื ืจ Docker ื ืืกืฃ ืืชืื ืงืื ืืืื ืจ Docker ืฉืื ื ืื ืฉืืฉืื ืืฉืชืืฉ ืืืืืืื ืงืืจืกืช? ืชืชืืื ืืืชืืื.
ืืืื DinD ืืฉืื ืื ืืกืืืื ืืืฉืื
ืืื ืืืืื ืข ืืืืจื ืขื ืืฉืืืื ืืขืื ืฉืื ืืฉืื, ืืฆืจืชื ืืืื DinD ืืฉืื:
ืคืชืจืื DinD ืืขืืื ื ืชื ืื ืืช ืืืืืืช ืืืคืขืื ืืช Docker ืืชืื Docker ืืืืคื ืจืงืืจืกืืื ืืืขืฉืืช ื ืืกืืืื ืืจืคืชืงื ืืื ืืืชืจ.
ืื ื ืืืื ืืชืืจ ื ืืกืื ืืื ืืื (ืืืฆืื) ืืืคืขืืช MySQL ื-Nodejs ืขืืฉืื.
ืืกืจื ืืกืืื ืืช ืืืืชืจ ืืืืืื ืืจืืืช ืืื ืืื ืืื
P โะ ยฐ ะ ั, ะ ะ ะ ยฐ ะก โก ะ ะ ะ ฮผะ ั:
-
ืื ื ืืฉืืงืื ืืช DinD ืืืฆื ืืื ืืจืืงืืืื. ืืืจืกื ืื ืฉื DinD, ืื ืื ื ืฆืจืืืื ืืืคืืช ืืืืคื ืืื ื ืืช ืื ืืืฆืืืืช ืฉืืืืืื ืฉืื ื ืืืืืื ืืืฉืชืืฉ ืืื (ืื ื ืืืจ ืขืืื ืขื ืื)
docker run --privileged -it -p 80:8080 -p 3306:3306 alekslitvinenk/dind
ืื ืื ื ื ืื ืกืื ืืืืก, ืืฉื ื ืืื ืืื ืืืชืืื ืืฉืืจ ืืืืืืช ืืืืื.
-
ืืคืขื ืืช MySQL:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=strongpassword -d -p 3306:3306 mysql
-
ืื ืื ื ืืชืืืจืื ืืืกื ืื ืชืื ืื ืืืืชื ืืืคื ืฉืื ืืืื ื ืืชืืืจืื ืืืื ืืืืคื ืืงืืื. ืืืื ื ืืืื ืฉืืื ืขืืื.
-
ืืคืขื ืืช ืืืืื ืืฉื ื:
docker run -d --rm -p 8080:8080 alekslitvinenk/hello-world-nodejs-server
ืฉืืื ืื ืฉืืืคืื ืื ืื ืืืื ืืืืืง 8080:8080, ืืืืืื ืฉืืืจ ืืืคืื ื ืืช ืคืืจื 80 ืืืืืจื ืืืืืืช ืืื ืืืฆืืื 8080.
-
ืื ื ืขืืืจืื ืื localhost ืืืคืืคื, ืืืืืืื ืฉืืฉืจืช ืืืื "Hello World!"
ืืืงืจื ืฉืื, ืื ืืกืื ืขื ืืืืื Docker ืืงืื ื ืื ืืชืืจืจ ืืืืืื ืืืื ืืื ื ืืืฉืื ืืคืชื ืืช ืืคืจืืืืงื ืืืืฉืชืืฉ ืื ืืืืฆืืข. ื ืจืื ืื ืฉืืื ืคืชืจืื ืงื ืืืจืื ืืงืืืจื ืืก ืื'ื ืงืื ืก X. ืืื ืื ืืขืชื ืืกืืืืืงืืืืืช.
ืื ื ืืืฉื ืฉืื ืืื ืืืืืจ ืฉื ืืืื. ืืืืืจ ืืื ืืชืืจ ืืืชืจ ืคืืจืื ื ืืกืืืื ืืืคืขืืช Docker ืืืืคื ืจืงืืจืกืืื ื-Docker ืืืจืืืช ืกืคืจืืืช ืขืืืง ืืชืื ืงืื ืืืื ืจืื ืืงืื ื ืื.
ื .ื. ืื ืืชื ืืืฆื ืืช ืืคืจืืืงื ืืื ืฉืืืืฉื, ืืืงืฉื ืชื ืื ืืืื ื-GitHub, ืขืืื ืืืชื ืืกืคืจ ืืืืจืื ืฉืื.
Edit1 ืชืืงื ืฉืืืืืช, ืืชืืงื ื-2 ืกืจืืื ืื
ืืงืืจ: www.habr.com