Docker-镜像制作

概念:

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

镜像是一种文件存储方式,镜像层数量可能会很多,所有镜像层会联合在一起组成一个统一的文件系统。
组成:程序代码、基础系统、依赖关系的软件包、系统库、工具
在这里插入图片描述

步骤:

1、下载源代码 ,在windows里下载,然后上传linux

docker/getting-started: Getting started with Docker (github.com)

2、解压app

[root@lb ~]# unzip getting-started-master.zip

3、进入app目录,新建一个新的Dockerfile

[root@lb getting-started-master]# cd app
[root@lb app]# 

vim Dockerfile

FROM node:12-alpine   #from  指定基础镜像
WORKDIR /app  # workdir  指定工作目录(进入容器的时候)
COPY .. # 从上下文目录中复制文件或者目录到容器里指定路径
RUN yan install --production  # 在容器里运行命令
CMD ["node","src/index.js"]  # 容器启动的时候运行的第一个命令

4、制作镜像

RUN  yum  install nginx -y
RUN mkdir /feng
RUN touch /feng/sanchuang.txt

RUN yum  install nginx -y && mkdir /feng && touch /feng/sanchuang.txt
RUN yum  install nginx -y \ 
   && mkdir /feng  \
   && touch /feng/sanchuang.txt

可以减少镜像文件的层次的数量
[root@lb app]# docker build -t getting-started .   (getting-started 是制作容器时容器的名字)
[root@lb app]# docker build -t getting-started .
Sending build context to Docker daemon  4.654MB
Step 1/5 : FROM node:12-alpine
 ---> bb6d28039b8c
Step 2/5 : WORKDIR /app
 ---> Running in 3ff2e10f4b9d
Removing intermediate container 3ff2e10f4b9d
 ---> e8354986e546
Step 3/5 : COPY . .
 ---> ef09dde30f24
Step 4/5 : RUN yarn install --production
 ---> Running in 924fd99647b8
yarn install v1.22.18
[1/4] Resolving packages...
warning Resolution field "ansi-regex@5.0.1" is incompatible with requested version "ansi-regex@^2.0.0"
warning Resolution field "ansi-regex@5.0.1" is incompatible with requested version "ansi-regex@^3.0.0"
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 41.47s.
Removing intermediate container 924fd99647b8
 ---> 85578d5a74fc
Step 5/5 : CMD ["node","src/index.js"]
 ---> Running in de6bc30db700
Removing intermediate container de6bc30db700
 ---> 395db1cc46ef
Successfully built 395db1cc46ef
Successfully tagged getting-started:latest

5、查看制作的镜像,getting-starting

[root@lb app]# docker images
REPOSITORY        TAG         IMAGE ID       CREATED         SIZE
getting-started   latest      395db1cc46ef   2 minutes ago   182MB
<none>            <none>      ea54512ab00a   7 minutes ago   91MB
redis             latest      3e42dd4e79c7   2 weeks ago     117MB
nginx             latest      b692a91e4e15   2 weeks ago     142MB
mysql             5.7.39      3147495b3a5c   3 weeks ago     431MB
node              12-alpine   bb6d28039b8c   4 months ago    91MB
hello-world       latest      feb5d9fea6a5   11 months ago   13.3kB
jcdemo/flaskapp   latest      4f7a2cc79052   3 years ago     88.7MB
[root@lb app]# 

启动容器

[root@lb app]# docker run -dp 3000:3000 getting-started
60a4a98b163dc60c6c906ff1a1cf53dd0736989782f3d6eee0cffcc222702d57
[root@lb app]# docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                                       NAMES
60a4a98b163d   getting-started   "docker-entrypoint.s…"   22 seconds ago   Up 21 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   serene_moser
30cbcdc3e3d2   nginx             "/docker-entrypoint.…"   24 hours ago     Up 2 hours      0.0.0.0:6654->80/tcp, :::6654->80/tcp       wangdan
[root@lb app]# 

6、浏览器访问ip地址加端口,查看效果,,页面为index.js 的效果
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值