初始化

This commit is contained in:
xuelijun
2025-11-04 18:08:36 +08:00
parent 2dff5e25de
commit daa020f1ec
1370 changed files with 127388 additions and 1 deletions

View File

@@ -0,0 +1,142 @@
`Compose` 支持 Linux、macOS、Windows 10 三大平台。
`Compose` 可以通过 Python 的包管理工具 `pip` 进行安装,也可以直接下载编译好的二进制文件使用,甚至能够直接在 Docker 容器中运行。
前两种方式是传统方式,适合本地环境下安装使用;最后一种方式则不破坏系统环境,更适合云计算场景。
`Docker for Mac``Docker for Windows` 自带 `docker-compose` 二进制文件,安装 Docker 之后可以直接使用。
```bash
$ docker-compose --version
docker-compose version 1.17.1, build 6d101fb
```
Linux 系统请使用以下介绍的方法安装。
## 安装方法一:二进制包
在 Linux 上的也安装十分简单,从 [官方 GitHub Release](https://github.com/docker/compose/releases) 处直接下载编译好的二进制文件即可。
例如,在 Linux 64 位系统上直接下载对应的二进制包。
```bash
$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
```
## 安装方法二PIP 安装
*注:* `x86_64` 架构的 Linux 建议按照上边的方法下载二进制包进行安装,如果您计算机的架构是 `ARM`(例如,树莓派),再使用 `pip` 安装。
这种方式是将 Compose 当作一个 Python 应用来从 pip 源中安装。
1、安装python-pip
```bash
yum -y install epel-release
yum -y install python-pip
```
执行安装命令:
```bash
pip install -U docker-compose
```
可以看到类似如下输出,说明安装成功。
```bash
Collecting docker-compose
Downloading docker-compose-1.17.1.tar.gz (149kB): 149kB downloaded
...
Successfully installed docker-compose cached-property requests texttable websocket-client docker-py dockerpty six enum34 backports.ssl-match-hostname ipaddress
```
查看版本号
```
docker-compose version
```
bash 补全命令
将对应版本号的docker-compose补全如下面的`1.8.0`替换成 `1.24.1`
```bash
$ curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
```
## 容器中执行
Compose 既然是一个 Python 应用,自然也可以直接用容器来执行它。
```bash
$ curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
```
实际上,查看下载的 `run.sh` 脚本内容,如下
```bash
set -e
VERSION="1.8.0"
IMAGE="docker/compose:$VERSION"
# Setup options for connecting to docker host
if [ -z "$DOCKER_HOST" ]; then
DOCKER_HOST="/var/run/docker.sock"
fi
if [ -S "$DOCKER_HOST" ]; then
DOCKER_ADDR="-v $DOCKER_HOST:$DOCKER_HOST -e DOCKER_HOST"
else
DOCKER_ADDR="-e DOCKER_HOST -e DOCKER_TLS_VERIFY -e DOCKER_CERT_PATH"
fi
# Setup volume mounts for compose config and context
if [ "$(pwd)" != '/' ]; then
VOLUMES="-v $(pwd):$(pwd)"
fi
if [ -n "$COMPOSE_FILE" ]; then
compose_dir=$(dirname $COMPOSE_FILE)
fi
# TODO: also check --file argument
if [ -n "$compose_dir" ]; then
VOLUMES="$VOLUMES -v $compose_dir:$compose_dir"
fi
if [ -n "$HOME" ]; then
VOLUMES="$VOLUMES -v $HOME:$HOME -v $HOME:/root" # mount $HOME in /root to share docker.config
fi
# Only allocate tty if we detect one
if [ -t 1 ]; then
DOCKER_RUN_OPTIONS="-t"
fi
if [ -t 0 ]; then
DOCKER_RUN_OPTIONS="$DOCKER_RUN_OPTIONS -i"
fi
exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w "$(pwd)" $IMAGE "$@"
```
可以看到,它其实是下载了 `docker/compose` 镜像并运行。
## 卸载
如果是二进制包方式安装的,删除二进制文件即可。
```bash
rm /usr/local/bin/docker-compose
```
如果是通过 `pip` 安装的,则执行如下命令即可删除。
```bash
pip uninstall docker-compose
```

View File

@@ -0,0 +1,90 @@
## 安装 Docker
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。
Docker CE 即社区免费版Docker EE 即企业版,强调安全,但需付费使用。
本文介绍 Docker CE 的安装使用。
移除旧的版本:
```
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
```
安装一些必要的系统工具:
```
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
```
添加软件源信息:
```
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
```
更新 yum 缓存:
```
sudo yum makecache fast
```
安装 Docker-ce
```
sudo yum -y install docker-ce
```
查看已安装docker版本
```
docker version
```
启动 Docker 后台服务
```
sudo systemctl start docker
```
开机启动
```
systemctl enable docker
```
## 镜像加速
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢我们可以需要配置加速器来解决推荐使用的是docker官方推荐的中国镜像地址https://registry.docker-cn.com
新版的 Docker 使用 `/etc/docker/daemon.json`Linux没有请新建
请在该配置文件中加入(没有该文件的话,请先建一个):
```javascript
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
```
重启docker
```
sudo systemctl daemon-reload
sudo systemctl restart docker
```
### 检查加速器是否生效
配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 `docker info`,如果从结果中看到了如下内容,说明配置成功。
```
Registry Mirrors:
https://registry.docker-cn.com/
```

View File

@@ -0,0 +1,41 @@
## Docker 获取镜像
之前提到过,[Docker Hub](https://hub.docker.com/) 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。
从 Docker 镜像仓库获取镜像的命令是 `docker pull`。其命令格式为:
```
# docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
```
具体的选项可以通过 docker pull --help 命令看到,这里我们说一下镜像名称的格式。
- Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。默认地址是 Docker Hub。
- 仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名>。对于 Docker Hub如果不给出用户名则默认为 library也就是官方镜像。
比如:
```
# 向docker拉取最小化的jre 1.8的运行环境anapsix/alpine-java 项目名称name8_server-jre_unlimited为标签tag
docker pull anapsix/alpine-java:8_server-jre_unlimited
```
从下载过程中可以看到我们之前提及的分层存储的概念,镜像是由多层存储所构成。下载也是一层层的去下载,并非单一文件。下载过程中给出了每一层的 ID 的前 12 位。并且下载结束后,给出该镜像完整的 sha256 的摘要,以确保下载一致性。
### 查看已下载镜像列表
`docker images``docker image ls`
```
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
anapsix/alpine-java 8_server-jre_unlimited 49d744fbb526 5 months ago 126MB
```
### 删除镜像
`docker image rm IMAGE_ID|NAME [IMAGE_ID|NAME...]``docker rmi IMAGE_ID|NAME [IMAGE_ID|NAME...]`
### 清空虚悬镜像
docker在构建了一个新的镜像名字和tag都一样的之后旧的那个镜像就会变成一个虚悬镜像旧的镜像就没有名字了此时旧的镜像就没啥用了可以一件清空
`docker image prune`

View File

@@ -0,0 +1,41 @@
## Docker 获取镜像
之前提到过,[Docker Hub](https://hub.docker.com/) 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜像。
从 Docker 镜像仓库获取镜像的命令是 `docker pull`。其命令格式为:
```
# docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
```
具体的选项可以通过 docker pull --help 命令看到,这里我们说一下镜像名称的格式。
- Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。默认地址是 Docker Hub。
- 仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名>。对于 Docker Hub如果不给出用户名则默认为 library也就是官方镜像。
比如:
```
# 向docker拉取最小化的jre 1.8的运行环境anapsix/alpine-java 项目名称name8_server-jre_unlimited为标签tag
docker pull anapsix/alpine-java:8_server-jre_unlimited
```
从下载过程中可以看到我们之前提及的分层存储的概念,镜像是由多层存储所构成。下载也是一层层的去下载,并非单一文件。下载过程中给出了每一层的 ID 的前 12 位。并且下载结束后,给出该镜像完整的 sha256 的摘要,以确保下载一致性。
### 查看已下载镜像列表
`docker images``docker image ls`
```
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
anapsix/alpine-java 8_server-jre_unlimited 49d744fbb526 5 months ago 126MB
```
### 删除镜像
`docker image rm IMAGE_ID|NAME [IMAGE_ID|NAME...]``docker rmi IMAGE_ID|NAME [IMAGE_ID|NAME...]`
### 清空虚悬镜像
docker在构建了一个新的镜像名字和tag都一样的之后旧的那个镜像就会变成一个虚悬镜像旧的镜像就没有名字了此时旧的镜像就没啥用了可以一件清空
`docker image prune`

View File

@@ -0,0 +1,15 @@
> 在阅读本章节前我们回认为您已经会安装并且使用docker如果您不会安装使用docker的话请阅读相关章节
**如果无法理解我们所编写的 `Dockerfile`强烈的不推荐使用docker进行生产环境部署**
0. 将整个项目上传到centos中进入到项目根目录
1. 安装 `docker` (参考《docker centos 安装》)
2. 安装`docker-compose`参考《Docker Compose 安装与卸载》)
3. 安装`open-jdk17`参考《centos jdk安装》
4. 安装`maven`参考《通过yum安装maven》
5. 使用 `mvn clean package -DskipTests` 命令进行打包
6. 使用 `docker-compose up` 启动项目
7. 使用nginx将请求指向特定的端口。

View File

@@ -0,0 +1,14 @@
安装maven的前提是安装jdk参考《linux jdk安装》
```bash
// 使用配置工具配置第三方epel源仓库
yum-config-manager --add-repo http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo
yum-config-manager --enable epel-apache-maven
// 安装maven
yum install -y apache-maven
// 验证maven验证是否为Oracle字样默认有版本输出
mvn -version
//最后确认下yum源地址有没被误改
yum repolist
```