第一种方法是方法通过 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
- p 3306:3306:将容器的3306端口映射到主机的3306端口
- -v $PWD/conf/my.cnf:/var/www/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
- -v $PWD/logs:/var/www/mysql/logs:将主机当前目录下的logs目录挂载到容器的/logs
- -v $PWD/data:/var/www/mysql/data:将主机当前目录下的data目录挂载到容器的/mysql_data
- -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