Docker(还没入门)

首先一点需要的linux命令

启动防火墙

sudo ufw enable

 查看防火墙端口状态

sudo ufw status

查看端口状态

 netstat -tuln

 开放端口

sudo ufw allow 3000/tcp

 禁用防火墙

sudo ufw disable

如果服务放在虚拟机中

Ubuntu访问地址为 通过命令:

ip addr show

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

 创建Docker文件(Dockerfile)

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 自己起的项目名 .

比如给SpringBoot项目jar包写Dockerfile

# 使用 JDK 17 基础镜像
FROM openjdk:17
# 设置工作目录
# WORKDIR /app
# 将本地的 h5GamesServer-1.0.jar 文件添加到镜像中
#ADD ./target/h5GamesServer-1.0.jar h5-server.jar
# 复制项目的 JAR 文件到容器中
#COPY target/h5GamesServer-1.0.jar /app/h5-server.jar
COPY h5GamesServer-1.0.jar /h5-server.jar
# 暴露应用使用的端口(根据实际需求修改,例如8080)
EXPOSE 8081
# 启动命令
ENTRYPOINT ["java", "-jar" ,"/h5-server.jar"]

RUN ls -l /app

这样写就是要把jar包和Dockerfile一起拉进服务器中,运行

sudo docker build -t h5service .

 来创建镜像,通过 sudo docker images 来查看所有镜像

再通过下面命令来运行

sudo docker run -d\
             --name h5service\
             -p 8081:8080\
             --network myh5\
             h5service

启动(第一种指定绑定的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 项目名

容器

运行容器

sudo docker run -d --name tomcat -p 8081:8080 tomcat:9.0

运行同时加入自定义网络

sudo docker run -d --name tomcat -p 8081:8080 --network myh5 tomcat:9.0

查看容器

查看id

sudo docker ps//正在运行
sudo docker ps -a//所有

查看详细状态(包括网络) 

sudo docker inspect tomcat

查看日志

sudo docker logs -f c6daf37e3285

 关闭容器

docker stop <the-container-id>

  删除

docker rm <the-container-id>

镜像 

查看镜像

sudo docker images

保存镜像 

保存文件名称:-o

镜像名称:tomcat:9.0

sudo docker save -o tomcat.tar tomcat:9.0
docker save -o E://h5service.tar h5service //保存到指定路径E盘根目录

删除镜像

sudo docker rmi tomcat:latest

加载镜像

加载文件名称:-i

sudo docker load -i tomcat.tar

上传项目到 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"

部署mysql

后台运行:run -d

容器名称:--name

参数:-e

端口映射:-p 虚拟机端口:容器内端口

执行命令

sudo docker run -d\
             --name mysql\
             -e MYSQL_ROOT_PASSWORD=123456\
             -p 3306:3306
             mysql

命令行连接

sudo docker exec -it mysql mysql -u root -p

Navicat连接

先用ssh或其他的连接方式连接服务器机器

然后回到第一个选项连接mysql

Docker内部网络

查看所有网络

sudo docker network ls

创建自定义网络

sudo docker network create myh5

将容器添加进自定义网络

sudo docker network connect myh5 tomcat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值