-
- 1.1 关于docker和docker-compose的安装
- 1.2 docker安装
- 1.3 docker-compose安装
- 1.4 docker更换镜像加速器
-
- 2.1 创建原始目录
- 2.2 创建Dockerfile
- 2.3 创建所需文件
- 2.4 创建镜像
-
- 3.1 docker运行
- 3.2 docker-compose运行
以Debian
系统为例,其他系统对应更改包管理器命令。
- Debian/Ubuntu: apt-get
- RedHat/CentOS: yum
- 大陆外
apt-get update -y && apt-get install -y curl wget && curl -fsSL https://get.docker.com | bash -s docker
- 国内
apt-get update -y && apt-get install -y curl wget && curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 大陆外
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
- 国内
curl -L "https://ghproxy.com/https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose
如果 /usr/local/bin
不在环境变量 PATH 里
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
检查docker-compose
版本
docker-compose --version
hub.docker.com
似乎被DNS污染了,
大陆机子推荐更换镜像加速器。非大陆机子不推荐。
关于源的有效性,可以参考以下这个开源项目,进行更改
终端运行
echo >/etc/docker/daemon.json
cat>/etc/docker/daemon.json <<END
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://docker.m.daocloud.io",
"https://ghcr.io",
"https://mirror.baidubce.com",
"https://docker.nju.edu.cn"
]
}
END
systemctl restart docker
mkdir -p moss
可执行程序连接按需修改,下载链接在release页面获取
https://github.com/deep-project/moss/releases/download/v0.1.1/moss_linux_amd64
当国内因为网络问题无法连接github
时,可以使用ghproxy
等进行加速
https://ghproxy.com/https://github.com/deep-project/moss/releases/download/v0.1.1/moss_linux_amd64
- 创建ockerfile
以下是个完整命令复制到终端运行
cat > ./moss/Dockerfile <<EOF
# 使用 golang:alpine3.18 作为基础镜像,该镜像包含了 Golang 环境和 Alpine 3.18 发行版
FROM golang:alpine3.18
# 使用中国科学技术大学的镜像源来替换默认的 Alpine 软件包镜像源
RUN echo "https://mirrors.ustc.edu.cn/alpine/v3.18/main" > /etc/apk/repositories \
&& echo "https://mirrors.ustc.edu.cn/alpine/v3.18/community" >> /etc/apk/repositories
# 更新软件包索引,升级已安装的软件包,并安装 wget
RUN apk update && apk upgrade && \
apk add --no-cache wget && \
mkdir -p /app && \
mkdir -p /app/mosscms && \
wget -O /app/moss https://github.com/deep-project/moss/releases/download/v0.1.1/moss_linux_amd64 && \
chmod +x /app/moss
# 安装时区数据包,并将时区设置为 Asia/Shanghai
RUN apk --no-cache add tzdata
RUN echo "Asia/Shanghai" > /etc/timezone
# 设置工作目录为 /app/mosscms
WORKDIR /app/mosscms
# 将容器的 9008 端口暴露出来,允许外部访问
EXPOSE 9008
# 定义容器启动时执行的默认命令为 /app/moss
CMD ["/app/moss"]
EOF
- 创建配置文件目录
mkdir -p ./moss/data
- 创建配置文件
以下是个完整命令复制到终端运行
cat > ./moss/data/conf.toml <<EOF
addr = ':9008'
db = 'sqlite'
dsn = './moss.db?_pragma=journal_mode(WAL)'
EOF
- 进入目录
cd moss
- 创建镜像
# docker build: 用于构建 Docker 镜像的命令
# -t moss:0.1.1: 指定构建的镜像名称为 moss,标签为 0.1.1
# .: 构建上下文路径,Docker 将在该路径下查找 Dockerfile 和相关资源来构建镜像
docker build -t moss:0.1.1 .
docker run -d \
--name moss \
-p 9008:9008 \
-v ./data/conf.toml:/app/mosscms/conf.toml \
-v ./data:/app/mosscms \
moss:0.1.1
通过http://IP:9008
进行访问
- 创建docker-compose.yml
以下是个完整命令复制到终端运行
cat >docker-compose.yml <<EOF
version: '3'
services:
moss:
image: moss:0.1.1
container_name: moss
ports:
- "9008:9008"
volumes:
- ./data/conf.toml:/app/mosscms/conf.toml
- ./data:/app/mosscms
restart: always
EOF
- 运行
docker-compose up -d
通过http://IP:9008
进行访问