docker环境部署笔记-CentOS-Stream-9-latest-aarch64

docker环境部署笔记-CentOS-Stream-9-latest-aarch64

一、docker 环境

1 宿主机环境

1 关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

2 关闭selinux

setenforce 0
# 永久关闭
vim /etc/selinux/config
SELINUX=disabled

3 配置国内yum源

/etc/yum.repos.d/centos.repo 

1. 备份源配置 [Very Important!]
mv /etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos.repo.backup

2. Clean Cache:
yum clean all

3. Backup the Old CentOS-Base.repo If exist this file.
cd /etc/yum.repos.d/ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

4. Create the new centos.repo file with vim or other editor , and save to the directory '/etc/yum.repos.d/' fill with the following contents below:

```bash
[baseos]
name=CentOS Stream $releasever - BaseOS
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/BaseOS/$basearch/os
# metalink=https://mirrors.centos.org/metalink?repo=centos-baseos-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1
[baseos-debuginfo]
name=CentOS Stream $releasever - BaseOS - Debug
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/BaseOS/$basearch/debug/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-baseos-debug-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[baseos-source]
name=CentOS Stream $releasever - BaseOS - Source
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/BaseOS/source/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-baseos-source-$stream&arch=source&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[appstream]
name=CentOS Stream $releasever - AppStream
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/AppStream/$basearch/os
# metalink=https://mirrors.centos.org/metalink?repo=centos-appstream-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1
[appstream-debuginfo]
name=CentOS Stream $releasever - AppStream - Debug
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/AppStream/$basearch/debug/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-appstream-debug-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[appstream-source]
name=CentOS Stream $releasever - AppStream - Source
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/AppStream/source/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-appstream-source-$stream&arch=source&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[crb]
name=CentOS Stream $releasever - CRB
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/CRB/$basearch/os
# metalink=https://mirrors.centos.org/metalink?repo=centos-crb-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1
[crb-debuginfo]
name=CentOS Stream $releasever - CRB - Debug
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/CRB/$basearch/debug/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-crb-debug-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[crb-source]
name=CentOS Stream $releasever - CRB - Source
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/CRB/source/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-crb-source-$stream&arch=source&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
5. Press the “ESC” key and input “:wq” to save and quit vim, if you use vim.

6. Create the new entos-addons.repo file with vim or other editor , and save to the directory '/etc/yum.repos.d/' fill with the following contents below:
[highavailability]
name=CentOS Stream $releasever - HighAvailability
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/HighAvailability/$basearch/os
# metalink=https://mirrors.centos.org/metalink?repo=centos-highavailability-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0
[highavailability-debuginfo]
name=CentOS Stream $releasever - HighAvailability - Debug
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/HighAvailability/$basearch/debug/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-highavailability-debug-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[highavailability-source]
name=CentOS Stream $releasever - HighAvailability - Source
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/HighAvailability/source/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-highavailability-source-$stream&arch=source&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[nfv]
name=CentOS Stream $releasever - NFV
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/NFV/$basearch/os
# metalink=https://mirrors.centos.org/metalink?repo=centos-nfv-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0
[nfv-debuginfo]
name=CentOS Stream $releasever - NFV - Debug
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/NFV/$basearch/debug/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-nfv-debug-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[nfv-source]
name=CentOS Stream $releasever - NFV - Source
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/NFV/source/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-nfv-source-$stream&arch=source&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[rt]
name=CentOS Stream $releasever - RT
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/RT/$basearch/os
# metalink=https://mirrors.centos.org/metalink?repo=centos-rt-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0
[rt-debuginfo]
name=CentOS Stream $releasever - RT - Debug
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/RT/$basearch/debug/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-rt-debug-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[rt-source]
name=CentOS Stream $releasever - RT - Source
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/RT/source/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-rt-source-$stream&arch=source&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[resilientstorage]
name=CentOS Stream $releasever - ResilientStorage
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/ResilientStorage/$basearch/os
# metalink=https://mirrors.centos.org/metalink?repo=centos-resilientstorage-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=0
[resilientstorage-debuginfo]
name=CentOS Stream $releasever - ResilientStorage - Debug
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/ResilientStorage/$basearch/debug/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-resilientstorage-debug-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[resilientstorage-source]
name=CentOS Stream $releasever - ResilientStorage - Source
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/$releasever-stream/ResilientStorage/source/tree/
# metalink=https://mirrors.centos.org/metalink?repo=centos-resilientstorage-source-$stream&arch=source&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
[extras-common]
name=CentOS Stream $releasever - Extras packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/SIGs/$releasever-stream/extras/$basearch/extras-common
# metalink=https://mirrors.centos.org/metalink?repo=centos-extras-sig-extras-common-$stream&arch=$basearch&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras-SHA512
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
countme=1
enabled=1
[extras-common-source]
name=CentOS Stream $releasever - Extras packages - Source
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stream/SIGs/$releasever-stream/extras/source/extras-common
# metalink=https://mirrors.centos.org/metalink?repo=centos-extras-sig-extras-common-source-$stream&arch=source&protocol=https,http
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Extras-SHA512
gpgcheck=1
repo_gpgcheck=0
metadata_expire=6h
enabled=0
7. Press the “ESC” key and input “:wq” to save and quit vim, if you use vim.
8. 更新缓存
yum clean all && yum makecache
yum update

2 安装Docker所需依赖包


yum install -y yum-utils device-mapper-persistent-data lvm2

3 配置阿里云Docker yum源


yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4 查看Docker版本

yum list docker-ce --showduplicates

5 安装Docker 默认最新版本

yum install docker-ce.aarch64

6 启动Docker服务

systemctl enable docker
systemctl start docker
systemctl status docker

7 创建docker网络

  • 创建一个新的docker虚拟网桥,172.33.0网段

    docker network create --subnet=172.33.0.0/24 docker-bd0

  • 查看创建的虚拟网桥

    
    [root@node1 docker_share]# docker network ls
    
    NETWORK ID          NAME                DRIVER              SCOPE
    
    9ba382086088        bridge              bridge              local
    
    dc9adef33a02        docker-bd0          bridge              local
    
    7a34806cba32        host                host                local
    
    cb988867d5e1        none                null                local
    
    
  • 查看虚拟网桥对应的Linux宿主机虚拟网卡

    
    [root@node1 docker_share]# ifconfig
    
    br-dc9adef33a02: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
    
            inet 172.33.0.1  netmask 255.255.255.0  broadcast 172.33.0.255
    
            ether 02:42:54:6b:a0:18  txqueuelen 0  (Ethernet)
    
            RX packets 0  bytes 0 (0.0 B)
    
            RX errors 0  dropped 0  overruns 0  frame 0
    
            TX packets 0  bytes 0 (0.0 B)
    
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions
    
    
  • 安装epel源

    yum -y install epel-release
    
    yum info bridge-utils
    
    yum -y install bridge-utils
    
    brctl show
    
  • 临时删除docker0网桥(意味着激活docker-bd0网桥)

    ifconfig docker0 down
    brctl delbr docker0
    
  • 重启docker服务

    systemctl restart docker

  • 配置dns服务器

    vim /etc/resolv.conf
    
    修改为如下
    
    # Generated by NetworkManager
    
    nameserver 172.33.0.10
    
    nameserver 8.8.8.8
    
    nameserver 8.8.4.4
    

8 创建与容器的共享目录

  • 在宿主机创建docker_share目录,用于后面的文件共享

    mkdir -p /mnt/docker_share

同时,宿主机上后续所有docker容器中所需用到的安装包都放在/mnt/docker_share中

通过查看容器验证虚拟网卡

docker ps

  • 使用docker命令查看容器网络配置

    docker inspect 容器id

9 Docker 私有仓库

在这里插入图片描述

一、私有仓库搭建

# 1、拉取私有仓库镜像 
docker pull registry
# 2、启动私有仓库容器 
docker run -id --name=registry -p 5000:5000 registry
# 3、打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功
# 4、修改daemon.json   
vim /etc/docker/daemon.json    
# 在上述文件中添加一个key,保存退出。此步用于让 docker 信任私有仓库地址;注意将私有仓库服务器ip修改为自己私有仓库服务器真实ip 
{"insecure-registries":["私有仓库服务器ip:5000"]} 
# 5、重启docker 服务 
systemctl restart docker
docker start registry

二、将镜像上传至私有仓库

# 1、标记镜像为私有仓库的镜像     
docker tag centos:7 私有仓库服务器IP:5000/centos:7
 
# 2、上传标记的镜像     
docker push 私有仓库服务器IP:5000/centos:7

三、 从私有仓库拉取镜像

#拉取镜像 
docker pull 私有仓库服务器ip:5000/centos:7

10 Docker Compose

一、安装Docker Compose

# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose
# 查看版本信息 
docker-compose -version

二、卸载Docker Compose

# 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose

三、 使用docker compose编排nginx+springboot项目

  1. 创建docker-compose目录
mkdir ~/docker-compose
cd ~/docker-compose
  1. 编写 docker-compose.yml 文件
version: '3'
services:
  nginx:
   image: nginx
   ports:
    - 80:80
   links:
    - app
   volumes:
    - ./nginx/conf.d:/etc/nginx/conf.d
  app:
    image: app
    expose:
      - "8080"
  1. 创建./nginx/conf.d目录
mkdir -p ./nginx/conf.d
  1. 在./nginx/conf.d目录下 编写itheima.conf文件
server {
    listen 80;
    access_log off;

    location / {
        proxy_pass http://app:8080;
    }
   
}
  1. 在~/docker-compose 目录下 使用docker-compose 启动容器
docker-compose up
  1. 测试访问
http://192.168.149.135/hello

11 Docker 应用部署

一、部署MySQL

  1. 搜索mysql镜像
docker search mysql
  1. 拉取mysql镜像
docker pull mysql:5.6
  1. 创建容器,设置端口映射、目录映射
# 在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
docker run -id \
-p 3307:3306 \
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
  • 参数说明:
    • -p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
    • -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
    • -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
    • -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
    • **-e MYSQL_ROOT_PASSWORD=123456:**初始化 root 用户的密码。
  1. 进入容器,操作mysql
docker exec –it c_mysql /bin/bash
  1. 使用外部机器连接容器中的mysql
    在这里插入图片描述

二、部署Tomcat

  1. 搜索tomcat镜像
docker search tomcat
  1. 拉取tomcat镜像
docker pull tomcat
  1. 创建容器,设置端口映射、目录映射
# 在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat 
  • 参数说明:
    • **-p 8080:8080:**将容器的8080端口映射到主机的8080端口

      **-v $PWD:/usr/local/tomcat/webapps:**将主机中当前目录挂载到容器的webapps

  1. 使用外部机器访问tomcat
    在这里插入图片描述

三、部署Nginx

  1. 搜索nginx镜像
docker search nginx
  1. 拉取nginx镜像
docker pull nginx
  1. 创建容器,设置端口映射、目录映射
# 在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
# 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
vim nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}


docker run -id --name=c_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
  • 参数说明:
    • -p 80:80:将容器的 80端口映射到宿主机的 80 端口。
    • -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机当前目录下的 /conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf。配置目录
    • -v $PWD/logs:/var/log/nginx:将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx。日志目录
  1. 使用外部机器访问nginx
    在这里插入图片描述

四、部署Redis

  1. 搜索redis镜像
docker search redis
  1. 拉取redis镜像
docker pull redis:5.0
  1. 创建容器,设置端口映射
docker run -id --name=c_redis -p 6379:6379 redis:5.0
  1. 使用外部机器连接redis
./redis-cli.exe -h 192.168.149.135 -p 6379

12 Dockerfile

## Dockerfile

| 关键字      | 作用                     | 备注                                                         |
| ----------- | ------------------------ | ------------------------------------------------------------ |
| FROM        | 指定父镜像               | 指定dockerfile基于那个image构建                              |
| MAINTAINER  | 作者信息                 | 用来标明这个dockerfile谁写的                                 |
| LABEL       | 标签                     | 用来标明dockerfile的标签 可以使用Label代替Maintainer 最终都是在docker image基本信息中可以查看 |
| RUN         | 执行命令                 | 执行一段命令 默认是/bin/sh 格式: RUN command 或者 RUN ["command" , "param1","param2"] |
| CMD         | 容器启动命令             | 提供启动容器时候的默认命令 和ENTRYPOINT配合使用.格式 CMD command param1 param2 或者 CMD ["command" , "param1","param2"] |
| ENTRYPOINT  | 入口                     | 一般在制作一些执行就关闭的容器中会使用                       |
| COPY        | 复制文件                 | build的时候复制文件到image中                                 |
| ADD         | 添加文件                 | build的时候添加文件到image中 不仅仅局限于当前build上下文 可以来源于远程服务 |
| ENV         | 环境变量                 | 指定build时候的环境变量 可以在启动的容器的时候 通过-e覆盖 格式ENV name=value |
| ARG         | 构建参数                 | 构建参数 只在构建的时候使用的参数 如果有ENV 那么ENV的相同名字的值始终覆盖arg的参数 |
| VOLUME      | 定义外部可以挂载的数据卷 | 指定build的image那些目录可以启动的时候挂载到文件系统中 启动容器的时候使用 -v 绑定 格式 VOLUME ["目录"] |
| EXPOSE      | 暴露端口                 | 定义容器运行的时候监听的端口 启动容器的使用-p来绑定暴露端口 格式: EXPOSE 8080 或者 EXPOSE 8080/udp |
| WORKDIR     | 工作目录                 | 指定容器内部的工作目录 如果没有创建则自动创建 如果指定/ 使用的是绝对地址 如果不是/开头那么是在上一条workdir的路径的相对路径 |
| USER        | 指定执行用户             | 指定build或者启动的时候 用户 在RUN CMD ENTRYPONT执行的时候的用户 |
| HEALTHCHECK | 健康检查                 | 指定监测当前容器的健康监测的命令 基本上没用 因为很多时候 应用本身有健康监测机制 |
| ONBUILD     | 触发器                   | 当存在ONBUILD关键字的镜像作为基础镜像的时候 当执行FROM完成之后 会执行 ONBUILD的命令 但是不影响当前镜像 用处也不怎么大 |
| STOPSIGNAL  | 发送信号量到宿主机       | 该STOPSIGNAL指令设置将发送到容器的系统调用信号以退出。       |
| SHELL       | 指定执行脚本的shell      | 指定RUN CMD ENTRYPOINT 执行命令的时候 使用的shell            |

13 Ollama docker 部署

docker pull arm64v8/swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ollama/ollama
docker buildx build --platform linux/arm64 -t arm64v8/swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ollama/ollama:0.3.13

docker run -d -v ./ollama:/root/.ollama -p 11434:11434 --name ollama arm64v8/swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ollama/ollama
docker run -d --name nginx -p 80:80 arm64v8/nginx。

docker exec -it ollama ollama pull deepseek-r1:7b

## 
# python环境

```bash
# Anaconda3-2024.10-1-MacOSX-arm64.pkg
# 验证安装
conda --version
# 手动配置环境变量(可选)
nano ~/.zshrc
	export PATH="/Users/用户名/anaconda3/bin:$PATH"
# 保存文件(按 Ctrl + O → Enter),退出编辑器(按 Ctrl +X)
# 使配置生效
source ~/.zshrc
# 初始化 Conda(可选)
conda init
# 创建新环境
conda create -n 环境名 python=3.9
# 激活环境
conda activate 环境名
# 安装包
conda install numpy
# 更新 Conda
conda update conda

二、宿主机环境

 1. Parallels Desktop + CentOS-Stream-9-latest-aarch64-dvd1.iso
 2. storage: 8G
 3. processor:2
 4. Termius

1 python环境

 1. Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
 2. ./Anaconda3-2024.10-1-Linux-aarch64.sh
 3. source /home/es/.bashrc
 4. which python
 5. conda create --name esenv python=3.10
 6. conda activate esenv / conda deactivate
# 验证安装
conda --version
# 使配置生效
source ~/.bash_profile  # 或 source ~/.zshrc
# 初始化 Conda(可选)
conda init
# 安装包
conda install numpy
# 更新 Conda
conda update conda
# 更换国内镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
1 环境管理‌:
‌创建新环境‌:conda create --name env_name python=3.8:创建一个新的虚拟环境,并指定Python版本。‌
‌激活环境‌:conda activate env_name:激活指定的虚拟环境。‌
‌退出环境‌:conda deactivate:退出当前激活的虚拟环境。
‌列出所有环境‌:conda env list 或 conda info --envs:列出所有已创建的虚拟环境。
‌删除环境‌:conda remove --name env_name --all:删除指定的虚拟环境及其所有包。
‌克隆环境‌:conda create --name new_env_name --clone old_env_name:克隆一个现有的虚拟环境。‌

‌2 包管理‌:
‌安装包‌:conda install package_name:在当前环境中安装一个或多个包。
‌更新包‌:conda update package_name:更新当前环境中的包到最新版本。
‌卸载包‌:conda uninstall package_name:从当前环境中删除一个包。
‌查看已安装的包‌:conda list:列出当前环境中已安装的包。
‌搜索包‌:conda search package_name:查找指定包的可用版本。‌

3‌ 配置管理‌:
‌设置镜像源‌:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/:设置或添加镜像源,以加速包的下载速度。‌

‌查看配置信息‌:conda info:显示Conda的环境和配置的详细信息。‌

‌清理缓存‌:conda clean --all:清理所有的安装包和缓存,以释放磁盘空间。
这些命令帮助用户有效地管理Conda环境及其依赖包,确保项目的顺利运行和开发。

2 java环境

# openjdk11
# 系统包是最新
1. sudo dnf update -y
2. sudo dnf install java-11-openjdk-devel
3. java -version
4. sudo alternatives --config java
5. vim /etc/profile
   export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.20.1.1-2.el9.aarch64
   export PATH=$JAVA_HOME/bin:$PATH
6. source /etc/profile
7. echo $JAVA_HOME

3 java 环境升级

sudo dnf install epel-release
sudo dnf config-manager --set-enabled remi
sudo dnf install java-21-openjdk

4 mysql环境

# 卸载CentOS9 自带的mariadb
rpm -qa | grep mariadb
# 卸载mariadb数据库
rpm -e mariadb-libs-5.5.56-2.el7.aarch64 --nodeps 
# 再次输入检查是否已经卸载完成
rpm -qa | grep mariadb
https://dev.mysql.com/downloads/repo/yum/ 下载 mysql84-community-release-el9-1.noarch.rpm

yum -y install mysql84-community-release-el9-1.noarch.rpm
# 安装完成后进入以下的目录
[root@master ~]# cd /etc/yum.repos.d/
[root@master ~]# ll
总用量 40
-rw-r--r--. 1 root root 4245  46 21:26 centos-addons.repo
-rw-r--r--. 1 root root 2600  46 21:26 centos.repo
-rw-r--r--. 1 root root 1519 122  2021 epel-next.repo
-rw-r--r--. 1 root root 1621 122  2021 epel-next-testing.repo
-rw-r--r--. 1 root root 1453 122  2021 epel.repo
-rw-r--r--. 1 root root 1552 122  2021 epel-testing.repo
-rw-r--r--. 1 root root 1751  726 01:01 mysql-community-debuginfo.repo
-rw-r--r--. 1 root root 1478  726 01:01 mysql-community.repo
-rw-r--r--. 1 root root 1611  726 01:01 mysql-community-source.repo
# 可以看到里面多了三个源:mysql-community-debuginfo.repo、mysql-community.repo和mysql-community-source.repo,现在就可以安装mysql了。
# 安装MySQL
yum -y install mysql-community-server
# 启动MySQL
systemctl start mysqld.service
# 查询MySQL服务状态
systemctl status mysqld.service
# 查看初始密码
 cat /var/log/mysqld.log
# 定位到A temporary password is generated for root@localhost: 冒号后面的就为初始化密码
# 进入MySQL
mysql –u root –p
# 修改初始密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
# 远程访问的授权
mysql>use mysql;(使用MySQL数据库)
mysql>update user set host = '%' where user = 'root'(将host修改为所有ip都可以访问)
mysql> flush privileges;(刷新所有权限)
# 降低密码等级限制,设置简单密码
保持MySQL登录状态,输入如下命令
  mysql> SHOW VARIABLES LIKE ‘validate_password%’
  修改变量
  set global validate_password.policy=0;
  set global validate_password.length=4;
  退出后执行
  set global validate_password.length=4;

5 nodejs环境

curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash -

sudo dnf install nodejs

node -v
npm -v

6 git环境

git操作? 
workspace:工作区 
staging area:暂存区 
local repository:版本库或本地仓库 
remote repository:远程仓库 
git init - 初始化仓库。 
1 git status 查看当前版本库中的改动 
2 git add a.py/. 把文件提交到暂存区 
3 git commit -m '注释' 把暂存区的文件提交到本地版本库 
4 git log 查看日志 
5 git push 提交到远程版本库 gitee/gitlab 把本地版本库里面的文件提交到gitee。 
6 git clone 地址 
还原到第2次提交时的代码:git reset --hard 7ac8038cd11f0c Pycharm文件颜色 
无色:代表这个文件已经提交到版本库 
红色:代表这个文件在工作区 
绿色:代表这个文件已经提交到了暂存区。 
蓝色:代表文件有改动。 
远程操作 git remote 远程仓库操作 
git fetch 从远程获取代码库 
git pull 下载远程代码并合并 
git push 上传远程代码并合并 提交日志 
git log 查看历史提交记录 
git diff 比较文件的不同,即暂存区和工作区的差异。 
git rm 删除工作区文件。 
git mv 移动或重命名工作区文件。 
创建分支命令: git branch (branchname) 
切换分支命令: git checkout (branchname) 
合并分支命令: git merge
sudo dnf update

sudo dnf install git

git --version

欢迎加入知识星球共同学习,免费知识答疑。

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐宝297

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值