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
2
sudo systemctl start docker
sudo systemctl enable 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
2
echo "容器启动完成,开始前台日志跟踪..."
tail -f /dev/null

deploy.sh 一键部署

实现一键部署,简化打镜像流程,例如:

1
2
3
4
5
6
git pull
docker build . -t kf_data_common:"${1}"
docker tag kf_data_common:"${1}" ccr.ccs.tencentyun.com/yunting-spider/kf_data_common:"${1}"
docker push ccr.ccs.tencentyun.com/yunting-spider/kf_data_common:"${1}"
docker rmi ccr.ccs.tencentyun.com/yunting-spider/kf_data_common:"${1}"
echo kf_data_common:"${1}"

常用命令:

  • 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 容器,并能持续运行,并将容器上传到腾讯云镜像仓库的完整流程:

  1. 在本地创建一个名为 Dockerfile 的文件,并使用文本编辑器打开它。

  2. Dockerfile 中添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 使用 Python 3.8 作为基础镜像,vpn必须开全局代理
FROM python:3.8-slim

# 构建者
MAINTAINER Yonggang

# 设置为上海时间
ENV TZ=Asia/Shanghai

# 设置工作目录
WORKDIR /app

# 复制项目文件到容器中
COPY . /app

# 安装依赖包
RUN pip install --no-cache-dir -r requirements.txt

# 暴露端口
EXPOSE 8000

# 启动应用
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
  1. 在项目根目录下创建一个名为 requirements.txt 的文件,并将 FastAPI 和其他依赖项添加到该文件中。例如:
1
2
fastapi
uvicorn
  1. 打开终端,进入项目根目录,执行以下命令构建 Docker 镜像:
1
docker build -t <repository>/<image-name>:<tag> .

这将使用 Dockerfile 构建一个名为 fastapi-app 的 Docker 镜像。

  1. 运行以下命令启动 Docker 容器:
1
docker run -d -p 8000:8000 --name fastapi-container fastapi-app

这将在后台运行一个名为 fastapi-container 的容器,并将容器的 8000 端口映射到主机的 8000 端口。

  1. 登录到腾讯云镜像仓库,使用以下命令:
1
docker login --username=<腾讯云用户名> --password=<腾讯云密码> <腾讯云镜像仓库地址>

请将 <腾讯云用户名><腾讯云密码><腾讯云镜像仓库地址> 替换为您自己的信息。

  1. 为镜像打上标签,使用以下命令:
1
docker tag fastapi-app <腾讯云镜像仓库地址>/<镜像名称>:<标签>

请将 <腾讯云镜像仓库地址><镜像名称><标签> 替换为您自己的信息。

  1. 推送镜像到腾讯云镜像仓库,使用以下命令:
1
docker push <腾讯云镜像仓库地址>/<镜像名称>:<标签>

请将 <腾讯云镜像仓库地址><镜像名称><标签> 替换为您自己的信息。

完成上述步骤后,您的 FastAPI 应用程序将以 Docker 容器的形式运行,并且镜像已成功上传到腾讯云镜像仓库中。