一、 前言:容器化技術的核心價值
容器技術(如 Docker)已成為現代應用開發和部署的標準方案,它能提供:
? 環境一致性:徹底解決"在我機器上能跑"的問題
? 快速部署:秒級啟動應用實例
? 資源隔離:安全穩定的運行環境
? 便捷擴展:輕松實現水平擴容
本文將以最簡單的 Hello World 程序為例,體驗天翼云容器鏡像服務 :
編寫基礎應用
容器化打包
鏡像服務使用全流程
二、編寫基礎應用-C語言HelloWorld實現
2.1 編寫經典程序
```c
/* hello.c */
#include <stdio.h>
int main() {
printf("Hello World from C Container!\n");
return 0;
}
```
2.2 本地編譯測試
```bash
gcc hello.c -o hello && ./hello -static
```
預期輸出:
```
Hello World from C Container!
```
三、容器鏡像構建
3.1 單階段Dockerfile
```dockerfile
## FROM gcc:latest
## 天翼云公有云上面ctyunos 的容器基礎鏡像
FROM registry-huadong1.crs.daliqc.cn/open-source/alpine:3.21
COPY hello.c .
RUN gcc hello.c -o hello
CMD ["./hello"]
```
3.2 構建與運行
```bash
# 構建鏡像
docker build -t c-hello .
# 運行容器
docker run --rm c-hello
```
3.3 跨平臺構建
```bash
docker buildx build --platform linux/amd64,linux/arm64 -t c-hello-multi .
```
四、容器鏡像上傳
3.1 鏡像文件查看
1、nerdctl images 或者 docker images
REPOSITORY TAG IMAGE ID CREATED PLATFORM SIZE BLOB SIZE
hello v2.3.4 f4d27c427cfc 13 days ago linux/amd64 172.3 MiB 171.5 MiB
hello1 v2.3.4 5e1397d47bd8 13 days ago linux/amd64 188.8 MiB 185.9 MiB
2、推送鏡像
docker tag f4d27c427cfc registry-xinan1.crs-internal.daliqc.cn/msgc_test/moontest:v2.3.4
docker push registry-xinan1.crs-internal.daliqc.cn/msgc_test/moontest:v2.3.4