docker学习笔记
CentOS安装docker
安装Docker依赖项:Docker需要一些依赖项来运行。运行以下命令来安装这些依赖项:
1 | sudo yum install -y yum-utils device-mapper-persistent-data lvm2 |
添加Docker官方仓库:Docker官方提供了用于安装Docker的仓库。运行以下命令来添加Docker官方仓库:
1 | sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo |
安装Docker引擎:运行以下命令来安装Docker引擎:
1 | sudo yum install -y docker-ce docker-ce-cli containerd.io |
启动Docker服务:安装完成后,启动Docker服务并设置为开机自启:
1 | sudo systemctl start docker |
验证安装:运行以下命令来验证Docker是否安装成功:
1 | sudo docker version |
docker pull 国内源
https://www.bilibili.com/video/BV1KstBeEEQR/
vi /etc/docker/daemon.json
```json
{"registry-mirrors": ["https://register.liberx.info"]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
- `sudo systemctl restart docker`
#### Windows安装
安装 Docker Desktop:https://www.docker.com/products/docker-desktop/
windows功能里面,打开 `Hyper-V` 和 `虚拟机平台`
WSL安装:https://learn.microsoft.com/zh-cn/windows/wsl/install
#### 容器打包镜像,上传腾讯云
腾讯云的**镜像仓库**的使用:https://cloud.tencent.com/developer/article/2273451?from=15425
腾讯云后台:https://console.cloud.tencent.com/tcr/repository/
快捷操作:
![image.png](https://s2.loli.net/2023/07/10/pgIJ8hRLnaEoWbF.png)
![image.png](https://s2.loli.net/2023/12/13/9MeNnd4OXaBAhY2.png)
镜像上传成功
![image.png](https://s2.loli.net/2023/12/13/4FQBXcfvhxDqUMZ.png)
#### Dockerfile运行的两种方式
- 指定应用程序
```dockerfile
ENTRYPOINT ["./startup.sh"]命令行
1 | CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] |
- 运行一个无限循环的命令来保持容器运行
1 | CMD ["bash", "-c", "while true; do sleep 30; done"] |
- 前台日志追踪,保持容器运行
1 | echo "容器启动完成,开始前台日志跟踪..." |
deploy.sh 一键部署
实现一键部署,简化打镜像流程,例如:
1 | git pull |
常用命令:
- docker logs xxx –tail 50
docker logs -f 7a38a1ad55c6
docker search browserless
查镜像docker exec -it xxx /bin/bash
docker stats
容器资源情况
--memory 512m
创建容器的时候,限制内存,默认占用宿主机全部内存
docker cp . xxx:/app
文件推送
实战经验
下面是使用 Linux 部署 FastAPI 的 Docker 容器,并能持续运行,并将容器上传到腾讯云镜像仓库的完整流程:
在本地创建一个名为
Dockerfile
的文件,并使用文本编辑器打开它。在
Dockerfile
中添加以下内容:
1 | # 使用 Python 3.8 作为基础镜像,vpn必须开全局代理 |
- 在项目根目录下创建一个名为
requirements.txt
的文件,并将 FastAPI 和其他依赖项添加到该文件中。例如:
1 | fastapi |
- 打开终端,进入项目根目录,执行以下命令构建 Docker 镜像:
1 | docker build -t <repository>/<image-name>:<tag> . |
这将使用 Dockerfile
构建一个名为 fastapi-app
的 Docker 镜像。
- 运行以下命令启动 Docker 容器:
1 | docker run -d -p 8000:8000 --name fastapi-container fastapi-app |
这将在后台运行一个名为 fastapi-container
的容器,并将容器的 8000 端口映射到主机的 8000 端口。
- 登录到腾讯云镜像仓库,使用以下命令:
1 | docker login --username=<腾讯云用户名> --password=<腾讯云密码> <腾讯云镜像仓库地址> |
请将 <腾讯云用户名>
、<腾讯云密码>
和 <腾讯云镜像仓库地址>
替换为您自己的信息。
- 为镜像打上标签,使用以下命令:
1 | docker tag fastapi-app <腾讯云镜像仓库地址>/<镜像名称>:<标签> |
请将 <腾讯云镜像仓库地址>
、<镜像名称>
和 <标签>
替换为您自己的信息。
- 推送镜像到腾讯云镜像仓库,使用以下命令:
1 | docker push <腾讯云镜像仓库地址>/<镜像名称>:<标签> |
请将 <腾讯云镜像仓库地址>
、<镜像名称>
和 <标签>
替换为您自己的信息。
完成上述步骤后,您的 FastAPI 应用程序将以 Docker 容器的形式运行,并且镜像已成功上传到腾讯云镜像仓库中。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Chen's Blog!
评论