服务计算——docker 应用容器化

服务计算——docker 应用容器化

1. Docker 简介

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

一个完整的Docker有以下几个部分组成:

  • dockerClient客户端
  • Docker Daemon守护进程
  • Docker Image镜像
  • DockerContainer容器

Docker的典型使用场景:

  • Automating the packaging and deployment of applications(使应用的打包与部署自动化)
  • Creation of lightweight, private PAAS environments(创建轻量、私密的PAAS环境)
  • Automated testing and continuous integration/deployment(实现自动化测试和持续的集成/部署)
  • Deploying and scaling web apps, databases and backend services(部署与扩展webapp、数据库和后台服务)

2. Docker 基本操作

2.1 安装配置 Docker
# 移除旧版本 Docekr
sudo yum remove docker*

# 设置 repository
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 使用阿里云镜像
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
   
# 不指定版本号 默认安装最新版
sudo yum install docker-ce
2.2 使用命令行搜索镜像
docker search + 镜像名称

在这里插入图片描述

2.3 下载镜像
docker search + 镜像名称

这里已经下载安装过(当时忘了截图)…

2.4 查看本地镜像列表
docker images

在这里插入图片描述

2.5 删除本地镜像
docker rmi [image id]

注:

其中[image id]替换为具体的镜像image id 镜像删除时不能有该镜像的容器存在,无论是运行中的还是停止的

2.6 启动镜像成容器
docker run -it --rm -p 8888:8080 镜像名:latest
  • 其中-it代表开启交互功能,即容器内tomcat启动日志你将能看到。
  • 其中—rm代表当启动的容器停止后自动删除该容器而并非是镜像。
  • 其中-p 8888:8080代表将容器中的8080端口映射到本地机器的8888端口上,即我们可以通过localhost:8888端口访问到镜像 ,甚至我可以改变本地端口来启动多个镜像 。
  • 最后的tomcat:latest代表启动的容器名称及其版本标签。
2.7 查看运行中的容器
docker ps

在这里插入图片描述

2.8 停止运行中的容器
docker stop [container id]

其中[container id]在执行时替换为具体容器的container id

2.9 查看停止状态的容器
docker ps -a

在这里插入图片描述


3. 针对本次实验做的工作

3.1 构建完整Docker file
FROM node:9.11.1-alpine

# install simple http server for serving static content
RUN npm install -g cnpm --registry=https://registry.npm.taobao.org && cnpm install -g http-server

# make the 'app' folder the current working directory
WORKDIR /app

# copy both 'package.json' and 'package-lock.json' (if available)
COPY package*.json ./

# install project dependencies
# RUN npm install

RUN cnpm install

# copy project files and folders to the current working directory (i.e. 'app' folder)
COPY . .

# build app for production with minification
RUN npm run build

EXPOSE 8080
CMD [ "http-server", "dist" ]
3.2 构建自定义镜像的基础镜像
FROM node:9.11.1-alpine
3.3 安装软件
# install simple http server for serving static content
RUN npm install -g cnpm --registry=https://registry.npm.taobao.org && cnpm install -g http-server
# install project dependencies
# RUN npm install
RUN cnpm install
# build app for production with minification
RUN npm run build
3.4 复制路径
# copy both 'package.json' and 'package-lock.json' (if available)
COPY package*.json ./
# copy project files and folders to the current working directory (i.e. 'app' folder)
COPY . .
3.5 切换工作路径
# make the 'app' folder the current working directory
WORKDIR /app
3.6 指定容器映射到主机端口
EXPOSE 8080
3.7 设置container启动时执行的操作
CMD [ "http-server", "dist" ]
3.8 在根目录下指令指令运行项目
# 位于项目的根目录下,但是由于代理问题这一步可能会出现部分配置文件安装超时问题,所以我们在docker file中更改了 npm 的源
docker build -t my-swapi-vue:v1

docker run -it -p 8080:8080 my-swapi-vue:v1c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值