docker部署博客项目
docker 部署博客項(xiàng)目
發(fā)現(xiàn)很久沒有寫文章了,等我的博客完成,我應(yīng)該也會繼續(xù)寫的
ssh root@xxxxxx
yum update
用來解壓zip壓縮包
yum install unzip
安裝相關(guān)的依賴
yum install -y yum-utils device-mapper-persistent-data lvm2
使用阿里鏡像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
正式安裝docker
yum install docker-ce docker-ce-cli container.io
docker啟動服務(wù)
systemctl start docker 啟動
systemctl enable docker 開機(jī)啟動啟動
查看版本
docker -v
修改鏡像源(踩過坑這個)
rm -f /etc/docker 這一步很重要先刪除
mkdir -p /etc/docker 創(chuàng)建文件
cd /etc/docker
vim /etc/docker/daemon.json
復(fù)制下面的代碼修改為國內(nèi)鏡像
{"registry-mirrors": ["https://registry.docker-cn.com"] }保存并退出
重啟服務(wù)和docker
systemctl daemon-reload
systemctl restart docker
安裝mysql
docker pull daocloud.io/library/mysql:8.0.21
docker images 查看安裝的mysql鏡像
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=abc123 mysql鏡像id
docker ps 查看運(yùn)行的鏡像和容器,會有mysql
mysql這個容器會被運(yùn)行起來
docker exec -it 容器id sh 進(jìn)入mysql容器內(nèi)部
mysql -uroot -p
然后出入密碼 abc123
遠(yuǎn)程連接授權(quán)
grant all privileges on *.* to root@‘%’ with grant option;
flush privileges; 刷新權(quán)限
ALTER USER ‘a(chǎn)dmin’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123456’; 更改密碼
flush privileges;
exit 退出mysql
exit 退出容器
安裝redis
docker pull redis 拉取鏡像
docker run -di --name=redis -p 6379:6379 redis || 鏡像id 運(yùn)行鏡像
docker exec -it redis /bin/bash 進(jìn)入redis這個容器
docker exec -it 容器id sh 進(jìn)入redis這個容器
安裝nginx
docker pull nginx
用于nginx映射文件使用的
mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html
運(yùn)行這個容器
docker run --name nginx -p 80:80 -d nginx
將容器的nginx.conf文件復(fù)制到宿主機(jī)
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /home/nginx/
刪除這個容器
docker stop nginx
docker rm nginx
docker rm -f nginx 強(qiáng)制刪除
運(yùn)行這個容器,并映射我們創(chuàng)建的文件目錄
docker run -p 80:80 --name nginx -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/nginx/log:/var/log/nginx -v /home/nginx/html:/usr/share/nginx/html -d nginx
docker restart nginx 重啟nginx
存放前端代碼
將打包好的前端代碼放入 /home/nginx/html 這個目錄下
后端項(xiàng)目,在根目錄下,寫Dockerfile 文件,寫入下面代碼, 安裝node鏡像,跑項(xiàng)目
這里踩過坑, pm2 和 cross-env 這些插件屬于開發(fā)環(huán)境,
“prd”: “cross-env NODE_ENV=production pm2 start bin/www”, 錯誤寫法
“prd”: " start bin/www", 正確寫法
Dockerfile
# 使用node鏡像
FROM daocloud.io/library/node:14.9.0
# 在容器中新建目錄文件夾 koa2
RUN mkdir -p /koa2
# 將 /koa2設(shè)置為默認(rèn)工作目錄
WORKDIR /koa2
# 將 package.json 復(fù)制默認(rèn)工作目錄
COPY package.json /koa2/package.json
# 安裝依賴
RUN yarn config set register https://registry.npm.taobao.org
RUN yarn --production 只安裝生產(chǎn)環(huán)境的依賴
# 再copy代碼至容器
COPY ./ /koa2
#3000端口
EXPOSE 3000
#等容器啟動之后執(zhí)行腳本
CMD yarn prd
把后端代碼上傳到服務(wù)器,打包 koa2.zip
放到 /root/koa2.zip
解壓打包的文件
unzip -u -d server koa2.zip
docker運(yùn)行后端代碼 在根目錄下運(yùn)行
docker build -t koa2:v1.0 ./server
docker run -d -p 3000:3000 --name server 鏡像id 運(yùn)行容器
我的node 跑起來的端口是 3000
nginx配置 有配置history路由刷新,發(fā)送http請求的
user root; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_connections 1024; }http {include /etc/nginx/mime.types;default_type application/octet-stream;log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;sendfile on;#tcp_nopush on;keepalive_timeout 64;#gzip on;server {listen 80;server_name 39.99.232.239;location / {root /usr/share/nginx/html;index index.html index.htm;try_files $uri $uri/ /index.html;}location ~ /api/ {proxy_pass http://39.99.232.239:3000;} }include /etc/nginx/conf.d/*.conf; }總結(jié)
以上是生活随笔為你收集整理的docker部署博客项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无代码BPM平台的使用和推荐
- 下一篇: 阿里云DNS服务器免费版和付费版列表