跳转至

3-DockerFile 常见部署

mkdir -p /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/proxy.conf
1
2
3
[Service]
Environment="HTTP_PROXY=http://xl.hoao.fun:7890"
Environment="HTTPS_PROXY=http://xl.hoao.fun:7890"

重启服务 systemctl daemon-reload
systemctl restart docker.service

build 时使用

docker build -t ass --build-arg http_proxy=http://xl.hoao.fun:7890 --build-arg https_proxy=http://xl.hoao.fun:7890 .
1
2
3
4
5
6
7
8
#!/bin/sh

set -e

# enable IP forwarding
sysctl -w net.ipv4.ip_forward=1
# $0表示脚本名称,$1和$2表示传递给脚本的第一个和第二个参数。而$@则表示所有的位置参数
exec "$@"

所以Dockerfile的 ENTRYPOINT [“/entrypoint.sh”] 可以是这个

1
2
3
4
5
6
7
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://p3nm1lt0.mirror.aliyuncs.com"]
} EOF
systemctl daemon-reload
systemctl restart docker
alias pdocker='docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Command}}"'

thin filebrowser

1
2
3
4
5
6
7
8
9
docker run -it -v $PWD:/go/data -p 8080:80 admibo/thin_file

进入到你想分享的目录:其中下方802是web访问的端口,可以随意暴露


浏览器打开  http://<你的IP>
账户密码
admin
admin@123

写画板

https://github.com/excalidraw/excalidraw

docker run -dit --name excalidraw -p 5000:80 excalidraw/excalidraw:latest

php+apache2 环境

docker run -d -p 8012:80 --name my-apache-php-app -v "$PWD":/var/www/html php:7.2-apache

Jenkins 部署

1
2
3
4
docker run -id --name myjenkins \
    -p 8080:8080 -p 50000:50000 \
    -v /var/jenkins_home:/var/jenkins_home \
    jenkins/jenkins:lts

mysql部署

docker run -p 127.0.0.1:3306:3306   \
 --name some-mariadb  \
 -e MARIADB_ROOT_PASSWORD=miboxp  \
 -d mariadb:latest

 # 免密登录
 echo -e "[client]\nuser=root\npassword=miboxp\nport = 3306" >> /etc/mysql/my.cnf
 # 创建用户
create database blog;
create user 'blog'@'localhost' identified by 'blog';
grant all privileges  on blog.* to 'blog'@'localhost';
flush privileges;

超级用户
create user 'mibo'@'localhost' identified by 'AzSf2SFCOakVH0sRTA1n.';
grant all privileges  on *.* to 'mibo'@'localhost';
flush privileges;

portainer 部署

1
2
3
4
5
6
docker run -d \
 -p 9000:9000 \
 --name=portainer \
 --restart=always \
 -v /var/run/docker.sock:/var/run/docker.sock \
 portainer/portainer-ce

git 部署

首先需要下载Gogs的Docker镜像; 树莓派使用

1
2
3
4
5
docker pull gogs/gogs-rpi
docker run -p 50022:22 -p 50080:3000 --name=gogs \
-e TZ="Asia/Shanghai" \
-v /root/gitgogs:/data  \
-d gogs/gogs-rpi
X86使用
1
2
3
4
5
6
docker pull gogs/gogs
下载完成后在Docker容器中运行Gogs;
docker run -p 50022:22 -p 50080:3000 --name=gogs \
-e TZ="Asia/Shanghai" \
-v /root/gitgogs:/data  \
-d gogs/gogs

filebrowser 部署

1
2
3
4
5
6
7
docker run \
    -v /path/to/root:/srv \
    -v /path/filebrowser.db:/database.db \
    -v /path/.filebrowser.json:/.filebrowser.json \
    --user $(id -u):$(id -g)
    -p 80:80 \
    filebrowser/filebrowser
1
2
3
4
5
docker run -d \
    --name=filebrowser \
    -v /abusb320:/srv \
    -p 1080:80 \
    filebrowser/filebrowser

adguardhome 部署

1
2
3
4
docker run --name adguardhome \
    -p 53:53/tcp -p 53:53/udp \
    -p 3000:3000/tcp \
    -d adguard/adguardhome

apache2.httpd 部署

1
2
3
4
docker run -p 80:80 --name \
    apache --restart always \
    -v /var/www/html:/usr/local/apache2/htdocs/ \
    -d httpd

linux aria2下载工具部署

下载器

docker run -d \
  --name aria2-service \
  --restart unless-stopped \
  --log-opt max-size=1m \
  -e PUID=33 \
  -e PGID=33 \
  -e UMASK_SET=111 \
  -e RPC_SECRET=mibo \
  -e RPC_PORT=6800 \
  -p 6800:6800 \
  -e LISTEN_PORT=6888 \
  -p 6888:6888 \
  -p 6888:6888/udp \
  -v /root/info-home/aria2-config:/config \
  -v /abusb320/Download:/downloads \
  p3terx/aria2-pro
  ---------------------------------------------------映射配置文件

控制器 AriaNg设置、输入上面的RPC_SECRET=后的值 mibo、即可链接成功

1
2
3
4
5
6
docker run -d \
  --name aria2-webui\
  --log-opt max-size=1m \
  --restart unless-stopped \
  -p 6880:6880 \
  p3terx/ariang

禅道

docker run --name zentao -p 8081:80 -v /opt/candao:/www/zentaopms -v /opt/candaoDB:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=www1122345 -d easysoft/zentao

mkdocs 服务

进入mkdocs 仓库根目录。主题 material

别名方式 + 防火墙

alias ddd='docker run -id --rm --name mibodoc -p 3366:80 -v /var/www/html/0BOOK_WRITEW:/home/ admibo/mkdocs && iptables -I DOCKER ! -s 10.66.30.100 -j DROP'

当前目录启动

docker run -id --rm -p 11223:80 -v $PWD:/home/ admibo/mkdocs

🐕buildx构建跨平台镜像

# 创建buildx环境
docker buildx create --name=buildx --driver=docker-container

# 启动buildx环境
docker buildx inspect --bootstrap buildx

# 切换到buildx环境
docker buildx use buildx

# 构建镜像
docker buildx build --platform linux/arm64,linux/amd64 -t hub.docker.com/username/git_name:v0.0.1 . --push

# 停止buildx环境
docker buildx stop buildx

# 删除buildx环境
docker buildx rm buildx

docker-compose

这是一个一句话的API,用于获取一言。

version: '3'
networks:
  hitokoto_api:
    driver: bridge

services:
  hitokoto_api:
    networks:
      - hitokoto_api
    image: hitokoto/api:release
    container_name: hitokoto_api
    hostname: hitokoto_api
    environment:
      NODE_ENV: production
      # 服务配置
      # url: https://v1.hitokoto.cn # 请修改为您想要部署的域名
      api_name: sh-01-X23Hwoc # 改一个好听的标识吧
      requests.hosts: "['v1.hitokoto.cn']" # 改成你想统计的主机名列表
      redis.host: redis # Redis 连接地址,如果您使用本文件提供的 Redis 的话您无需修改此项
      redis.port: 6379 # Redis 连接端口
      # redis.password:
      # redis.database: 0
    ports:
      - 127.0.0.1:18000:8000
    links:
      - redis
    restart: unless-stopped
    volumes:
      - ./etc/api:/usr/src/app/data

  redis:
    networks:
      - hitokoto_api
    image: redis
    restart: unless-stopped
    container_name: redis
    hostname: redis
    volumes:
      - ./etc/redis.conf:/etc/redis/redis.conf # 一定要记得把 redis.conf 先放在这个位置哦
      - ./data/redis:/data
    command: redis-server /etc/redis/redis.conf
    # ports:
    #  - 6379:6379 # 如果有必要请取消注释本行