docker 是什么
应用容器引擎,基于GO编写。
特点:
- 高效、快速、小巧
- docker是C/S架构, 所以需要启动docker服务 才能使用docker其他的命令
docker架构
镜像(image),容器(container),仓库(registry)
image: 应用程序及其依赖(依赖包和依赖环境)
container:image的运行实例
registry:image仓库
- 镜像
怎么用
- 使用Dokcerfile 创建image(基于registry中其他同学的image 扩展自己的image)
docker image build -t ${image-name} ${your_dockerfile_path}
- 运行image 创建container
docker container run -p 3000:8080 -it ${image-name} /bin/bash
- -p参数:容器的 3000 端口映射到本机的 8000 端口。
- -it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
- ${image-name} image文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)。
- /bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。
dockerfile
# 依赖的image镜像
FROM node:8.4
# 拷贝当前目录下所有文件到 容器中指定目录
COPY . /app
# 切换到容器中的指定目录
WORKDIR /app
# 执行shell命令
RUN npm install --registry=https://registry.npm.taobao.org
# 暴露7001 端口 允许外部访问
EXPOSE 7001
# 要执行的shell命令
CMD npm run dev
- RUN 和 CMD的区别:
- RUN 在启动container阶段使用,CMD 在container运行之后 使用,
- CMD只能有一个
- 注意,指定了CMD命令以后,docker container run命令就不能附加命令了(比如前面的/bin/bash),否则它会覆盖CMD命令
参考:
网友评论