Docker 使用
1. Docker基础概念
- Image:Image是将运行的程序以及依赖等文件打包在一起。是程序的运行环境。
- Container:Container是Image运行后形成的进程,一个Image可以创建1个或多个Container,每个Container之间是相互隔离的。
2. Docker image下载
sudo docker pull --platform linux/amd64 openjdk:21-jdk-slim`
- 当一个笔记本上的容器存在多个平台下的版本时,需要使用tag来进行区分
# 拉取 amd64 版本
docker pull --platform linux/amd64 mysql:latest
docker tag mysql:latest mysql:amd64
# 拉取 arm 版本
docker pull --platform linux/arm64 mysql:latest
docker tag mysql:latest mysql:arm
3. Docker 指令
启动
`sudo docker run -it --name myapp-container -p 8080:8080 myapp:latest /bin/bash`
开机自启动
sudo docker update --restart=always 容器名字或ID
sudo docker update --restart=no 容器名字或ID
sudo docker update --restart=on-failure:3 容器名或ID
sudo docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" 容器名或ID
4. Docker compose
version: "3.8"
services:
db:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: ****** # 设置root用户的密码
MYSQL_USER: userName # 创建一个新用户
MYSQL_PASSWORD: userName # 用户的密码
ports:
- "3306:3306" # 映射MySQL端口到宿主机的3306端口
5. Docker 部署
- 本地保存Docker
sudo docker save -o java21_x64.tar java21_x64:latest
- 上传文件到服务器
scp ****
- 服务器端加载docker
`sudo docker load -i java21_x64.tar`