Docker-Docker安装mysql、nginx、redis、jenkins,node项目

第一种方法是方法通过 Dockerfile构建,不推荐折磨人。
第二种docker pull mysql:5.6

第一步
我们新建一个目录,自己随意

mkdir -p /var/www/mysql/data /var/www/mysql/logs /var/www/mysql/conf

第二步然后新建my.cnf
这个是mysql的配置文件,在使用docker创建mysql,当容器删除,mysql的数据就会清空,这个时候我们需要把mysql的配置、数据、日志从容器内映射到容器外,这样数据就保持下来了

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
default-storage-engine=INNODB
collation-server=utf8mb4_general_ci
user=mysql
port=3306
bind-address=0.0.0.0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
default-character-set=utf8mb4

第三步启动容器

docker run -p 3306:3306 --name mymysql -v $PWD/conf/my.cnf:/var/www/mysql/my.cnf -v $PWD/logs:/var/www/mysql/logs -v $PWD/data:/var/www/mysql/data -e MYSQL_ROOT_PASSWORD=pass1234 -d mysql:5.6

docker exec -it mymysql bash
 grant all privileges on *.* to root@"%" identified by "password" with grant optio

下面是启动mongodb

mkdir -p /var/www/mongo  /var/www/mongo/db
 docker pull mongo
 docker run -p 27017:27017 -v $PWD/db:/var/www/mongo/db -d mongo

下面是安装nginx

mkdir -p /var/www/nginx/www /var/www/nginx/logs /var/www/nginx/conf
docker pull nginx
docker run -p 80:80 --name mynginx -v /var/www/nginx/www:/www -v /var/www/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /var/www/nginx/logs:/wwwlogs  -d nginx  $PWD/logs:/wwwlogs  -d nginx  
--新版本logs移除了
docker run -p 80:80 --name mynginx -v /var/www/nginx/www:/www -v /var/www/nginx/conf/nginx.conf:/etc/nginx/nginx.cof -d nginx

特别注意 配置中不能用127.0.0.1 需要用宿主ip也就是你服务器的ip,因为127.0.0.1是docker的哦
比如

server {
        listen       80;
        server_name  gd.songnini.com;
        location / {
           proxy_pass   http://123.56.22.40:8021;
          proxy_max_temp_file_size 0;
          expires 1h;

         }


    error_page   404 500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

下面是安装redis

mkdir -p /var/www/redis /var/www/redis/data
docker pull  redis
cd /var/www/redis 
创建 redis.conf 下载http://download.redis.io/redis-stable/redis.conf
找到bind 127.0.0.1,把这行前面加个#注释掉
再查找protected-mode yes 把yes修改为no

docker run -p 6379:6379 --name myredis -v /var/www/redis/redis.conf:/etc/redis/redis.conf -v /var/www/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
进入redis
docker exec -i -t e60da5191243 /bin/bash  
加载配置
redis-server redis.conf
设置密码在配置中修改或者直接
requirepass 密码

redis-cli -a test123
config set requirepass 新密码

安装gitlab服务器

docker pull gitlab/gitlab-ce
mkdir -p /var/www/gitlab /var/www/gitlab/config  /var/www/gitlab/logs /var/www/gitlab/data
docker run --name gitlab -d  -v /var/www/gitlab/config:/etc/gitlab -v /var/www/gitlab/data:/var/opt/gitlab -v /var/www/gitlab/logs:/var/log/gitlab -p 1022:22 -p 1080:80 -p 10433:433 gitlab/gitlab-ce
中文
docker pull twang2218/gitlab-ce-zh
mkdir -p /var/www/gitlab /var/www/gitlab/config  /var/www/gitlab/logs /var/www/gitlab/data
docker run --name gitlab -d  -v /var/www/gitlab/config:/etc/gitlab -v /var/www/gitlab/data:/var/opt/gitlab -v /var/www/gitlab/logs:/var/log/gitlab -p 1022:22 -p 1080:80 -p 10433:433 twang2218/gitlab-ce-zh
docker exec -it 0030a1a03f6a /bin/bash
-- 初始化
gitlab-ctl reconfigure

安装jenkins

mkdir -p /var/www/jenkins/var
docker pull jenkins
cd /var/www/jenkins
chown -R 1000:1000 /var/www/jenkins
 docker run -itd -p 8080:8080 -p 50000:50000 --name jenkins --privileged=true  -v /var/www/jenkins:/var/jenkins_home jenkins
使用端口8080访问
密码使用命名查看
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword


  1. p 3306:3306:将容器的3306端口映射到主机的3306端口
  2. -v $PWD/conf/my.cnf:/var/www/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
  3. -v $PWD/logs:/var/www/mysql/logs:将主机当前目录下的logs目录挂载到容器的/logs
  4. -v $PWD/data:/var/www/mysql/data:将主机当前目录下的data目录挂载到容器的/mysql_data
  5. -e MYSQL_ROOT_PASSWORD=pass1234:初始化root用户的密码

这里写图片描述

这里写图片描述
这里写图片描述

安装自己项目

项目创建Dockerfile文件

FROM node:9-alpine
COPY . /app
WORKDIR /app
RUN npm install --registry=https://registry.npm.taobao.org
EXPOSE 3030
CMD ["npm", "start"]

创建.dockerignore文件

.git
node_modules
npm-debug.log

在服务器上执行命令

docker build 加项目目录也就是Dockerfile文件同目录
docker build  /var/www/cloudapi -t cloudapi_node
docker run -itd --name cloudapi_node  -p 3030:3030 cloudapi_node  

安装ownCloud

docker pull ownCloud
mkdir -p /var/www/ownCloud
docker run --name=owncloud --link=mymysql:mysql-owncloud  -v /var/www/owncloud:/var/www/html/data -p 666:80 -d owncloud

-- -link my-mysql:mysql连接mysql容器

安装nextCloud

docker pull nextcloud
mkdir -p /var/www/nextcloud
docker run --name=nextcloud -v /var/www/nextcloud:/var/www/html/data -p 666:80 -d nextcloud

发布了66 篇原创文章 · 获赞 30 · 访问量 28万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览