Docker入门

作者: 一丁点多点 | 来源:发表于2019-04-19 17:11 被阅读0次

docker

基本概念
  • image(镜像):相当于将应用程序、文件系统、可执行程序、运行库一起打包的压缩包;用于创建Docker容器的模板;docker images可以列出本地镜像;
  • container(容器):是独立运行的一个或者一组应用;一个镜像运行的实例就是容器,一个镜像可以启动多个容器;docker run用于从一个镜像创建一个容器;docker ps列出所有正在运行的容器;
  • registry(镜像仓库):用来保存镜像;
安装

参考docker install

镜像使用

以本地实际测试为例

  • 生成镜像: 使用docker build命令可以将Dockerfile生成镜像;Dockerfile是生成镜像的配置文件;进入项目所在目录,创建Dockerfile,内容如下
FROM node:8
# Create app directory
WORKDIR /home/zml/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install
# If you are building your code for production
# RUN npm install --only=production

# Bundle app source
COPY . .

EXPOSE 9977
CMD [ "npm", "start" ]

执行docker build -t zml/koa-app .生成镜像;
Dockerizing a Node.js web app
)

  • 设置镜像标签: docker tag zml/koa-app:latest localhost:8888/koa/koa-app:v1
    localhost:8888为本地镜像仓库地址;进行本操作之前,需要先docker login登录镜像仓库;
  • 镜像上传: docker push localhost:8888/koa/koa-app:v1将镜像上传到本地仓库;

需要注意的是,上述脚本基础镜像FROM node:8基于ubuntu,生成的应用镜像比较大有几百M,可以换个基础镜像如FROM node:8-alpine,其制作的镜像只有30M左右。只是Alpine Linux是基于musl libc和busybox的轻量级linux发行版,c库与标准c库不一样,可能会导致非预期行为。

使用非root权限运行

$ sudo groupadd docker
$ sudo gpasswd -a zml docker
$sudo service docker restart
$ cat /etc/group
docker:x:999:user,zml

相关文章

网友评论

    本文标题:Docker入门

    本文链接:https://www.haomeiwen.com/subject/osjmeqtx.html