Percy Dev Engineer

Docker学习记录

2023-05-08
Percy

1、安装

  • 机器:47.97.4.204
  • 版本:23.0.5
  • 方式:python
  • docker-compose版本:1.29.2

    2、应用部署

    Nacos

  • 拉取镜像:
    docker pull nacos/nacos-server
    
  • 容器启动:
    docker run --env MODE=standalone --name nacos -d -p 18848:8848 nacos/nacos-server
    
  • 访问:http://47.97.4.204:18848/nacos

    Nginx

  • 拉取镜像:
    docker pull nginx:1.22.1
    
  • 容器启动:
    docker run --name nginx -p 80:80 -d nginx:1.22.1
    
  • 复制文件:
    docker cp nginx:/etc/nginx/nginx.conf /home/nginx/nginx.conf
    docker cp nginx:/etc/nginx/conf.d/ /home/nginx/conf.d/
    docker cp nginx:/usr/share/nginx/html/ /home/nginx/html/
    docker cp nginx:/var/log/nginx/ /home/nginx/logs/
    
  • 容器停止、删除:
    docker stop nginx
    docker rm nginx
    
  • 容器启动:
    docker run -p 80:80 -p 8889:8889 \
    -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \
    -v /home/nginx/logs:/var/log/nginx \
    -v /home/nginx/html:/usr/share/nginx/html \
    -v /home/nginx/conf.d:/etc/nginx/conf.d \
    -v /etc/localtime:/etc/localtime \
    --name nginx \
    --restart=always \
    -d nginx:1.22.1
    
  • 访问:http://47.97.4.204:80

    MySQL

  • 拉取镜像:
    docker pull mysql:5.7
    
  • 容器启动:
    docker run -p 13306:3306 --name mysql --restart=always --privileged=true \
    -v /home/mysql/conf:/etc/mysql/conf.d \
    -v /home/mysql/logs:/logs \
    -v /home/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
    

    大多数情况下,启动数据库容器,都需要将数据卷挂载到容器外,这样,容器被删除了,数据也不会丢失。

  • 连接:47.97.4.204:13306

    MySQL8

  • 拉取镜像:
    docker pull mysql:8.0.31
    
  • 容器启动:
    docker run -p 23306:3306 --name mysql8 --restart=always --privileged=true \
    -v /home/mysql8/conf:/etc/mysql/conf.d \
    -v /home/mysql8/log:/var/log \
    -v /home/mysql8/data:/var/lib/mysql \
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=mysqlQwer8! -d mysql:8.0.31 \
    --lower_case_table_names=1
    

    大多数情况下,启动数据库容器,都需要将数据卷挂载到容器外,这样,容器被删除了,数据也不会丢失。

  • 连接:47.97.4.204:23306

    Postgres

  • 拉取镜像:
    docker pull postgres:15.3
    
  • 容器启动:
    docker run -d -p 15432:5432 --name postgres -v /home/postgresql/data:/var/lib/postgresql/data --restart=always --privileged=true -e POSTGRES_PASSWORD=123456 -e ALLOW_IP_RANGE=0.0.0.0/0 postgres:15.3 
    
  • 连接:47.97.4.204:15432

    Redis

  • 拉取镜像:
    docker pull redis
    
  • 容器启动:
    docker run -di --name redis -p 16379:6379 redis
    
    docker run -di --name redis-pwd -p 26379:6379 redis --requirepass 123456
    
    docker run --name redis7 -p 36379:6379 \
    -d --restart=always --privileged=true \
    -v /home/redis7/redis.conf:/etc/redis/redis.conf \
    -v /home/redis7/data:/data \
    -e TZ=Asia/Shanghai \
    -d redis:7.0.12 redis-server /etc/redis/redis.conf
    
  • 连接:47.97.4.204:16379

    Tomcat

  • 拉取镜像:
    docker pull tomcat
    
  • 容器启动:
    docker run -d -p 18080:8080 --name tomcat tomcat
    
  • 访问:http://47.97.4.204:18080

    MinIO

  • 拉取镜像:
    docker pull minio/minio
    
  • 容器启动:
    docker run --name minio-gpl -p 29000:9000 -p 29001:9001 \
    -d --restart=always --privileged=true \
    -e "MINIO_ROOT_USER=admin" \
    -e "MINIO_ROOT_PASSWORD=admin123456789" \
    -v /home/minio-gpl/data:/data \
    -v /home/minio-gpl/config:/root/.minio \
    minio/minio server /data --address ':9000' --console-address ':9001'
    
  • 访问:http://47.97.4.204:29001

    MinIO (旧版Apache)

  • 拉取镜像:
    docker pull minio/minio:RELEASE.2021-04-22T15-44-28Z
    
  • 容器启动:
    docker run --name minio -p 9000:9000 \
    -d --restart=always --privileged=true \
    -e "MINIO_ROOT_USER=admin" \
    -e "MINIO_ROOT_PASSWORD=admin123456789" \
    -v /home/minio/data:/data \
    -v /home/minio/config:/root/.minio \
    minio/minio:RELEASE.2021-04-22T15-44-28Z server /data
    
  • 访问:http://47.97.4.204:9000

    One API

  • 容器启动:
    docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -e "SQL_DSN=one-api:123456@tcp(47.97.4.204:13306)/one-api" -e "REDIS_CONN_STRING=redis://11@47.97.4.204:16379" -e "SYNC_FREQUENCY=60" -v /home/ubuntu/data/one-api:/data justsong/one-api
    
  • 访问:http://47.97.4.204:3000

    ChatGPT-Next-Web

  • 容器启动:
    docker run --name chatgpt-next-web -d -p 3001:3000 \
     -e OPENAI_API_KEY="sk-ZPw1zjYRJDoKxuOyC95bAc1e86Ad4d2484E4C824FeB056Dc" \
     -e CODE="qwer123456789" \
     -e BASE_URL="http://47.97.4.204:3000" \
     yidadaa/chatgpt-next-web
    
  • 访问:http://47.97.4.204:3001

    mayfly-go

  • 拉取镜像:
    docker pull ccr.ccs.tencentyun.com/mayfly/mayfly-go:v1.8.8
    
  • 容器启动:
    # 直接挂载容器工作目录(注:需要将config.yml复制到/usr/local/mayfly-go文件夹下))
    docker run -d --name mayfly-go -v /home/mayfly-go:/mayfly -p 18888:18888  ccr.ccs.tencentyun.com/mayfly/mayfly-go:v1.8.8
    

    Jenkins

  • 拉取镜像:
    docker pull jenkins/jenkins:2.452.3-lts
    
  • 容器启动:
    docker run -d -u root -p 8080:8080 -p 50000:50000 \
    --restart=always --name jenkins \
    -v /home/jenkins_home:/var/jenkins_home \
    -v /etc/localtime:/etc/localtime \
    -v /usr/bin/docker:/usr/bin/docker \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e TZ=Asia/Shanghai \
    jenkins/jenkins:2.452.3-lts
    
  • 连接:47.97.4.204:8080
  • 访问:http://47.97.4.204:8080
  • 安装JDK 17、maven3.0到/home/jenkins_home目录下并设置全局工具JDK和maven使用/var/jenkins_home目录

    3、可视化

    portainer

  • 拉取镜像:
    docker pull portainer/portainer
    
  • 容器启动:
    docker run -d -p 18000:8000 -p 19000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
    

    新版

    docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /home/portainer/data:/data portainer/portainer-ce:2.19.5
    
  • 访问:http://47.97.4.204:19000 admin/admin123456789

    4、Dockerfile

    用于构建镜像,类似maven pom文件,IDEA有插件支持远程构建。

    5、Docker Compose

    使用YML文件定义和运行多容器应用。

    6、Docker Swarm

    容器编排

    7、其它

  • 注意容器时区,启动加参数
    -v /etc/localtime:/etc/localtime
    
  • 进入容器
    docker exec -it 容器ID /bin/sh
    

Similar Posts

下一篇 K8S学习记录

Comments