Практический пример запуска приложения в docker под Windows
Пусть это будет контейнер от проекта по обучению Angularjs 2 от поискового гиганта.
!!! Чуть ли не 1GB скачается из интернета на диск.
По крайней мере, я вижу следующее:
REPOSITORY TAG IMAGE ID CREATED SIZE
ng2-quickstart latest dd42c5d97b57 About an hour ago 934.4 MB
$ git clone https://github.com/angular/quickstart myApp
Cloning into 'myApp'...
remote: Counting objects: 1192, done.
remote: Compressing objects: 100% (22/22), done.
Receiving objects: 96% (1145/1192), 796.01 KiB | 677.0remote: Total 1192 (delta 8), reused 0 (delta 0), pack-reused 117Receiving objects: 100% (1192/1192), 1.63 MiB | 38.00 KiB/s, done.
Resolving deltas: 100% (669/669), done.
Checking connectivity... done.
Блин, они выпилили dockerfile из репо! Если, что смотри другой бранч, там он есть. Или даже, смотри https://github.com/ui-router/quickstart-ng2/blob/master/Dockerfile
Навсяк, запощу его сюда:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# To build and run with Docker:
#
# \$ docker build -t ng2-quickstart .
# \$ docker run -it --rm -p 3000:3000 -p 3001:3001 ng2-quickstart
#
FROM node:latest
RUN mkdir -p /quickstart /home/nodejs && \
groupadd -r nodejs && \
useradd -r -g nodejs -d /home/nodejs -s /sbin/nologin nodejs && \
chown -R nodejs:nodejs /home/nodejs
WORKDIR /quickstart
COPY package.json typings.json /quickstart/
RUN npm install --unsafe-perm=true
COPY . /quickstart
RUN chown -R nodejs:nodejs /quickstart
USER nodejs
CMD npm start
$ cd myApp/
$ docker build -t ng2-quickstart .
$ docker run -it --rm -p 3000:3000 -p 3001:3001 ng2-quickstart
Коннектиться нужно не к localhost а к виртуальной машине virtualbox.
$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\<Username>\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env default)
$ docker-machine ip
192.168.99.100
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default - virtualbox Running tcp://192.168.99.100:2376 v1.11.0
$ docker-machine status default
Running
Подключаюсь браузером:
http://192.168.99.100:3000/
Все ОК.
PS. у меня с первого раза не заработало. ХЗ почему.
Выполнял после этого команду из env
$ eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env default)
И перестартовывал контейнеры.