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项目
- 创建docker-compose目录
mkdir ~/docker-compose
cd ~/docker-compose
- 编写 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"
- 创建./nginx/conf.d目录
mkdir -p ./nginx/conf.d
- 在./nginx/conf.d目录下 编写itheima.conf文件
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8080;
}
}
- 在~/docker-compose 目录下 使用docker-compose 启动容器
docker-compose up
- 测试访问
http://192.168.149.135/hello
11 Docker 应用部署
一、部署MySQL
- 搜索mysql镜像
docker search mysql
- 拉取mysql镜像
docker pull mysql:5.6
- 创建容器,设置端口映射、目录映射
# 在/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 用户的密码。
- 进入容器,操作mysql
docker exec –it c_mysql /bin/bash
- 使用外部机器连接容器中的mysql
二、部署Tomcat
- 搜索tomcat镜像
docker search tomcat
- 拉取tomcat镜像
docker pull tomcat
- 创建容器,设置端口映射、目录映射
# 在/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
-
- 使用外部机器访问tomcat
三、部署Nginx
- 搜索nginx镜像
docker search nginx
- 拉取nginx镜像
docker pull nginx
- 创建容器,设置端口映射、目录映射
# 在/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。日志目录
- 使用外部机器访问nginx
四、部署Redis
- 搜索redis镜像
docker search redis
- 拉取redis镜像
docker pull redis:5.0
- 创建容器,设置端口映射
docker run -id --name=c_redis -p 6379:6379 redis:5.0
- 使用外部机器连接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 4月 6 21:26 centos-addons.repo
-rw-r--r--. 1 root root 2600 4月 6 21:26 centos.repo
-rw-r--r--. 1 root root 1519 12月 2 2021 epel-next.repo
-rw-r--r--. 1 root root 1621 12月 2 2021 epel-next-testing.repo
-rw-r--r--. 1 root root 1453 12月 2 2021 epel.repo
-rw-r--r--. 1 root root 1552 12月 2 2021 epel-testing.repo
-rw-r--r--. 1 root root 1751 7月 26 01:01 mysql-community-debuginfo.repo
-rw-r--r--. 1 root root 1478 7月 26 01:01 mysql-community.repo
-rw-r--r--. 1 root root 1611 7月 26 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