https://yeasy.gitbook.io/docker_practice/repository/registry
docker run -d \
-p 5100:5000 \
-v /opt/data/registry:/var/lib/registry \
--name docker_registry \
registry
https://github.com/xiaotiandada/docker-nodejs
mkdir docker-nodejs
cd docker-nodejs
npm init
npm install -save express
touch index.js
const express = require('express')
const app = express()
app.get('/',function(req, res){
res.send('hello world')
})
app.listen(8081, function(){
console.log(`app listening on port 8081`)
})
node index.js
可以打开 http://localhost:8081 测试是否正常工作
touch Dockerfile
Dockerfile只是一个名为'Dockerfile'的纯文本文件,没有扩展名
FROM node:18.19.0-alpine
WORKDIR /app
COPY package.json ./
RUN npm config set registry https://registry.npmmirror.com
RUN npm install
COPY index.js ./
CMD node index.js
EXPOSE 8081
第一行Docker使用一个Docker镜像作为我们创建的镜像的模板 使用的是Node.js的官方Docker镜像
FROM node:18.19.0 --1.1GB
FROM node:18.19.0-alpine --140MB
第二行应用程序代码在Docker容器内的位置设置工作目录。
第3行应用程序代码复制package.json
第4行应用程序代码 设置国内镜像
第5行应用程序代码 安装任何软件包依赖关系
第6行应用程序代码 我们告诉Docker将我们的本地文件复制到容器的工作目录中
在第7行,我们告诉docker通过使用node运行我们的index.js
最后,在第8行中,我们设置了Docker在容器运行时将公开的端口8082。
注:Node.js应用程序使用端口8081,但在容器运行时将使用Docker容器内的该端口。
构建Docker镜像使用带-t参数的docker build命令来标记名为docker-nodejs的镜像,并提供Dockerfile所在目录路径的引用,它在同一个目录中,所以我用一个点
docker build -t docker-nodejs .
名字要小写 不能忘记点!!!
docker run -d -p 8082:8081 docker-nodejs
我们使用docker run命令,“p”参数,以映射Docker容器和Node应用使用的端口。Dockerfile中,我们公开了端口8082,但在我们的代码中Node正在使用端口8081
Docker会显示来自Node的响应,表示该应用程序正在端口8081上运行,打开8082端口 http://localhost:8082
docker tag docker-nodejs:latest 127.0.0.1:5100/docker-nodejs:2.0
docker push 127.0.0.1:5100/docker-nodejs:2.0
http://blog.xmyunce.com/posts/660
docker pull 123.249.34.10:5100/docker-nodejs:2.0
docker run -d -p 8081:8081 --name docker_nodejs 123.249.34.10:5100/docker-nodejs:2.0
curl http://127.0.0.1:8081
https://blog.51cto.com/u_16213466/11950005
version=$1
docker build -t docker-nodejs .
docker tag docker-nodejs:latest 127.0.0.1:5100/docker-nodejs:${version}
docker push 127.0.0.1:5100/docker-nodejs:${version}
version=$1
docker pull 123.249.34.10:5100/docker-nodejs:${version}
docker stop docker_nodejs
docker rm docker_nodejs
docker run -d -p 8081:8081 --name docker_nodejs 123.249.34.10:5100/docker-nodejs:${version}
//进入Alpine 容器内部
docker exec -it docker_nodejs sh
//进入Ubuntu 容器内部
docker exec -it docker_nodejs /bin/bash