1
00:00:02,120 --> 00:00:03,790
Now to give you an example,

2
00:00:03,790 --> 00:00:07,150
I have a brand new empty project here,

3
00:00:07,150 --> 00:00:09,550
it got no application inside of it.

4
00:00:09,550 --> 00:00:12,000
And now let's say we wanna create

5
00:00:12,000 --> 00:00:14,280
a node application in there.

6
00:00:14,280 --> 00:00:16,530
Up to this point in the course,

7
00:00:16,530 --> 00:00:20,290
I always gave you a finished node application,

8
00:00:20,290 --> 00:00:22,030
a starting application,

9
00:00:22,030 --> 00:00:24,720
I always gave you a file attachment.

10
00:00:24,720 --> 00:00:27,180
Now the problem with that just is

11
00:00:27,180 --> 00:00:30,450
that we can create such an application

12
00:00:30,450 --> 00:00:33,430
without node being installed on our system.

13
00:00:33,430 --> 00:00:35,560
But it would be quite cumbersome.

14
00:00:35,560 --> 00:00:38,560
Because we need this package .JSON file

15
00:00:38,560 --> 00:00:41,640
with some configuration about the node app.

16
00:00:41,640 --> 00:00:42,990
Most importantly,

17
00:00:42,990 --> 00:00:46,740
with a list of dependencies this app needs.

18
00:00:46,740 --> 00:00:49,590
And yes, we could use some blueprints here

19
00:00:49,590 --> 00:00:53,400
and copy and paste that into any new project we have.

20
00:00:53,400 --> 00:00:56,320
And we can type it all out by hand here,

21
00:00:56,320 --> 00:00:58,310
this would be possible.

22
00:00:58,310 --> 00:01:02,500
But typically, you create new node projects

23
00:01:02,500 --> 00:01:07,180
by running npm init, in your project folder,

24
00:01:07,180 --> 00:01:11,030
and npm init will then walk through a couple of questions.

25
00:01:11,030 --> 00:01:13,870
And at the end, create a package JSON file

26
00:01:13,870 --> 00:01:16,390
with the answers to the questions posed

27
00:01:16,390 --> 00:01:18,253
and some defaults filled in.

28
00:01:19,120 --> 00:01:21,430
Now, the problem about that just is

29
00:01:21,430 --> 00:01:23,560
that NPM is not a command,

30
00:01:23,560 --> 00:01:26,980
which is available on your machine just like this,

31
00:01:26,980 --> 00:01:31,430
it's only available if you got node JSON installed.

32
00:01:31,430 --> 00:01:32,263
And for that,

33
00:01:32,263 --> 00:01:35,950
you need to visit nodejs.org downloaded.

34
00:01:35,950 --> 00:01:38,680
Now the problem with that, in turn,

35
00:01:38,680 --> 00:01:42,060
is that the entire idea behind Docker is

36
00:01:42,060 --> 00:01:45,010
that we don't need to install tools globally

37
00:01:45,010 --> 00:01:46,400
on our host machine.

38
00:01:46,400 --> 00:01:48,170
Instead, we want to use containers,

39
00:01:48,170 --> 00:01:51,363
which include the environments our application needs.

40
00:01:52,210 --> 00:01:55,670
Nonetheless, to set up an application in the first place,

41
00:01:55,670 --> 00:01:58,760
we basically need to install Node JS

42
00:01:58,760 --> 00:02:01,020
in order to run this NPM command.

43
00:02:01,020 --> 00:02:04,730
Unless we want to type this package .JSON file by hand.

44
00:02:04,730 --> 00:02:08,250
And you might think that this is a node specific problem.

45
00:02:08,250 --> 00:02:09,699
But it's not.

46
00:02:09,699 --> 00:02:12,100
If you start working with PHP

47
00:02:12,100 --> 00:02:14,890
and maybe frameworks like Laravel,

48
00:02:14,890 --> 00:02:18,610
you will need even more complex setup on your system.

49
00:02:18,610 --> 00:02:21,070
And you will need to install even more tools

50
00:02:21,070 --> 00:02:25,930
just to set up such a Laravel application, for example.

51
00:02:25,930 --> 00:02:27,740
So it's not node specific.

52
00:02:27,740 --> 00:02:31,160
A lot of projects and a lot of programming languages

53
00:02:31,160 --> 00:02:34,560
need some extra tools to be installed on your system

54
00:02:34,560 --> 00:02:38,640
on your host machine in order to create the projects.

55
00:02:38,640 --> 00:02:40,830
And yes, you can put the project

56
00:02:40,830 --> 00:02:42,530
into a container thereafter.

57
00:02:42,530 --> 00:02:44,220
But the initial creation

58
00:02:44,220 --> 00:02:47,850
still needs these tools to be installed on your system.

59
00:02:47,850 --> 00:02:51,140
And that's exactly where utility containers can help us

60
00:02:51,140 --> 00:02:54,330
so therefore, let's no dig into utility containers.

61
00:02:54,330 --> 00:02:57,843
And let's in general, explore what we can do with Docker

62
00:02:57,843 --> 00:03:00,363
beyond running some application.

