Docker(还没入门)

首先一点需要的linux命令

启动防火墙

sudo ufw enable

 查看防火墙端口状态

sudo ufw status

 开放端口

sudo ufw allow 3000/tcp

 禁用防火墙

sudo ufw disable

如果服务放在虚拟机中

Ubuntu访问地址为 通过命令:

ip addr show

 打印出来的ens32路由下的inet 后面的地址

 创建Docker文件

Docker也是一个虚拟机,所以是将项目放到了Docker虚拟机中,在运行的时候需要端口绑定到主机之类的操作 

touch Dockerfile

在里面写入(官方文档的方案,不同的服务可以有不同的方案)

# syntax=docker/dockerfile:1

FROM node:18-alpine
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
EXPOSE 3000

 构建项目,最后的句点.代表从当前路径下查找项目

docker build -t 自己起的项目名 .

启动(第一种指定绑定的ip,第3种绑定所有ip)

第一个端口表示Docker容器内的端口

第二个端口表示绑定到主机上的端口

docker run -dp 127.0.0.1:3000:3000 项目名
docker run -dp 0.0.0.0:3000:3000 项目名
docker run -dp 3000:3000 项目名

查看容器ID

docker ps

关闭容器

docker stop <the-container-id>

删除

docker rm <the-container-id>

上传项目到 Docker Hub(类似git)

访问:https://hub.docker.com/

创建一个公共仓库

回到命令行窗口,登录

docker login -u 用户名

创建标签tag

docker tag 项目名 用户名/仓库名
docker tag getting-started YOUR-USER-NAME/getting-started

上传

docker push YOUR-USER-NAME/getting-started

具体代码可以在仓库右边看到

Volume数据库存储

随着容器一起,容器删除将会把数据库一起删除,并且容器之间不共享数据库

创建数据库(sqllite)

docker volume create (数据库名)todo-db

使用数据库

要使用数据库必须在运行一次,标明使用什么类型(type)的什么名字(src)的数据库放在什么位置(target)

docker run -dp 127.0.0.1:3000:3000 
    --mount type=volume,
            src=todo-db,
            target=/etc/todos getting-started

bind mounts绑定装载

热更新代码

使用文档中的代码文件可以正常运行以下代码,第一次会下载node18-alpine,第二次运行就正常

docker run -dp 127.0.0.1:3000:3000 \
    -w /app --mount type=bind,src="$(pwd)",target=/app \
    node:18-alpine \
    sh -c "yarn install && yarn run dev"

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值