在这里先亮一下所涉及的环境设备 阿里云服务器:
cpu&内存:2核(vcpu)2 gib
操作系统:centos 8.5 64位
第一步安装docker
安装命令:
curl -fssl https://get.docker.com | bash -s docker --mirror aliyun当出现如下命令:
说明已经安装成功了
第二步安装docker-compose
这一步比较折腾, 按照网上的方法,使用如下命令, 即可完成下载:
curl -l https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose但却得到如下结果:
下载失败,并且提示:permission denied
无权限问题
有效的方法就是这两种:
输入如下命令:
sudo usermod -ag docker $user chmod +x /usr/local/bin/docker-compose
然后结果如下:
报出了一个新的问题
安装失败或缺失
报错:
/usr/local/bin/docker-compose: line 1: html: no such file or directory/usr/local/bin/docker-compose: line 2: syntax error near unexpected token `<''usr/local/bin/docker-compose: line 2: `503 service temporarily unavailable
解决方法:
重新安装docker-compose,国内的有些快捷方式有些是有问题的,可能短期内能够使用,时间长了就会出现问题
尽量直接使用github的,如果一次下载不成,多执行几遍就可以
命令如下:
curl -l https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose最终效果:安装成功!
检查命令: docker-compose -v
第三步安装nginx和jenkins
使用docker拉取nginx、jenkins镜像
docker pull nginx docker pull jenkins/jenkins
拉取完之后,查看镜像
docker images
以下这部分内容是挪用《docker + jenkins + nginx实现前端自动化部署》来的
创建docker的相关目录,方便维护
mkdir /docker mkdir /docker/compose mkdir /docker/jenkins_home mkdir /docker/nginx mkdir /docker/nginx/conf mkdir /docker/html mkdir /docker/html/dev mkdir /docker/html/release mkdir /docker/html/pro
创建docker-compose.yml、nginx.conf配置文件
cd /docker/composetouch docker-compose.ymlcd /docker/nginx/conftouch nginx.conf
最终目录结构如下:
+ docker + compose - docker-compose.yml //docker-compose配置 + html //各环境代码目录(实际项目可能不在同一目录) + dev //dev环境代码目录 + release //release环境代码目录 + pro //pro环境代码目录 + jenkins_home //jenkins工程目录 + nginx //nginx工程目录 + conf - nginx.conf //nginx配置
nginx.conf
user nginx;worker_processes 1; error_log /var/log/nginx/error.log warn;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 65; gzip on; #dev环境 server { #监听的端口 listen 8001; server_name localhost; #设置日志# access_log logs/dev.access.log main; #定位到index.html location / { #linux下html文件夹,就是你的前端项目文件夹 root /usr/share/nginx/html/dev/dist;# root /home/html/dev/dist; #输入网址(server_name:port)后,默认的访问页面 index index.html; try_files $uri $uri/ /index.html; } } #sit环境 server { #监听的端口 listen 8002; server_name localhost; #设置日志# access_log logs/sit.access.log main; #定位到index.html location / { #linux下html文件夹,就是你的前端项目文件夹 root /usr/share/nginx/html/sit/dist;# root /home/html/dev/dist; #输入网址(server_name:port)后,默认的访问页面 index index.html; try_files $uri $uri/ /index.html; } } # include /etc/nginx/conf.d }
重点: 进入服务器控制台安全组配置添加三个都端口。8080:对应jenkins 8001:对应dev环境 8002:对应sit环境
docker-compose.yml
version: '3'networks: frontend: external: trueservices: docker_jenkins: user: root restart: always image: jenkins/jenkins:lts container_name: jenkins environment: - tz=asia/shanghai - jenkins_opts=--prefix=/jenkins_home ports: - 8080:8080 - 50000:50000 volumes: - /docker/jenkins_home/:/var/jenkins_home - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose docker_nginx_dev: restart: always image: nginx container_name: nginx_dev ports: - 8001:8001 volumes: - /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf - /docker/html:/usr/share/nginx/html - /docker/nginx/logs:/var/log/nginx docker_nginx_sit: restart: always image: nginx container_name: nginx_sit ports: - 8002:8002 volumes: - /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf - /docker/html:/usr/share/nginx/html - /docker/nginx/logs:/var/log/nginx
配置说明:
docker_jenkins 是一个定义的服务名称。 user: root 指定了 jenkins 容器使用 root 权限。 restart: always 表示容器总是在退出时重启。 image: jenkins/jenkins:lts 指定了 jenkins 镜像及其版本。 container_name: jenkins 是容器的名称。 ports 定义了容器内外端口的映射。 volumes 定义了主机文件系统路径与容器内路径的挂载关系。 image: nginx指定了 nginx 镜像。 container_name: nginx_dev 是容器的名称。
docker如何移除jenkins
要从docker中删除jenkins容器,可以按照以下步骤进行操作:
首先,使用docker ps -a命令查看所有正在运行的或已经停止的容器。确认jenkins容器的id或名称。
然后,使用docker stop (将替换为jenkins容器的id)来停止该容器。
接下来,使用docker rm (同样需要将替换为jenkins容器的id)来删除该容器。
最后,还可以通过docker images命令列出本地存储库中的所有图像,并使用docker rmi (将替换为jenkins镜像的id)来删除相应的镜像。
注意事项:
在执行上述命令之前,请确保没有其他重要数据依赖于这些容器或镜像。
若要完全清理docker系统中不再使用的对象,可以使用docker system prune命令。
第四步启动环境
先启动docker, 如果已经设置自动启动,可忽略
systemctl start docker然后启动jenkins、nginx, 这一步要在docker-compose.yml当前目录下,执行该命令,不然会报找不到docker-compose up -d
查看运行状态
docker-compose ps -a
[root@iz7xvdmlqb3e0e0teakf5vz ~]# cd /docker/compose [root@iz7xvdmlqb3e0e0teakf5vz compose]# docker-compose ps -a
然后访问地址,即可
因为文章篇幅太大,所以jenkins的配置和使用放到第二篇。欢迎关注
查看docker容器的命令,可以使用docker ps -a命令。这将显示所有正在运行或已经停止的容器及其相关信息,包括容器id、镜像名称、创建时间等。
如果需要获取特定容器的详细信息,可以使用docker inspect 命令来查看该容器的配置和状态。
下面是一些常用的docker容器管理命令示例:
docker run: 创建并运行新的容器。
docker start/stop/restart: 分别启动、停止和重启指定的容器。
docker exec: 进入到正在运行中的容器内部执行命令。
docker logs: 输出容器的日志信息。
docker rm: 删除不再需要的容器。
docker images: 列出本地主机上存在的镜像。
docker pull: 从互联网上拉取最新版本的镜像。
docker push: 将自定义的镜像推送到互联网上共享。
docker build: 根据 dockerfile 构建新的镜像。
进入服务器检查docker、docker-compose版本
[root@vm-12-6-centos ~]# docker -vdocker version 20.10.5, build 55c4c88[root@vm-12-6-centos ~]# docker-compose -vdocker-compose version 1.28.6, build 5db8d86f
设置docker开机启动
sudo systemctl enable docker sudo systemctl start docker
vivo逆势增长,重回全球手机出货量前5名
关于Risk Management Toolbox的性能分析和应用介绍以及更新
简易接地故障指示器的制作
了解高速ADC的交流行为
SHF公司高性能超宽带微波器件系列产品简介
基于阿里云Docker和Jenkins构建自动化部署
全新机器人是一个令人印象深刻的机器人技术壮举
科创板虹软科技董事、董事长、总经理(首席执行官)邓晖介绍、履历信息
要实现信号共享离不开AV讯维视频矩阵控制器
苹果正研究如何允许多个用户安全地共享
魅蓝S6评测 性价比再提升全面屏新可能
数字技术工程师培育项目加快推进,每年培养培训8万人左右
嵌入式Linux系统CPU控制常见办法测试
亿智AI芯片赋能多品类智慧终端
第11届电路保护与电磁兼容技术论坛
钠硫电池的结构组成_钠硫电池的作用
全自动点焊机的简单介绍
紫外线老化试验箱的结构说明
为什么说区块链是目前潜在的变革性技术?
128GB东芝存储USB3.0闪存盘评测 值不值得买