社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

云部署:阿里云Docker+Jenkins构建自动化部署

马哥Linux运维 • 5 月前 • 171 次点击  

在这里先亮一下所涉及的环境设备 阿里云服务器:

  • 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: `<title>503 Service Temporarily Unavailabletitle>head>

解决方法:

重新安装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.ymlnginx.conf配置文件

cd /docker/composetouch docker-compose.yml
cd /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: true
services: 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容器,可以按照以下步骤进行操作:

  1. 首先,使用docker ps -a命令查看所有正在运行的或已经停止的容器。确认Jenkins容器的ID或名称。

  2. 然后,使用docker stop (将替换为Jenkins容器的ID)来停止该容器。

  3. 接下来,使用docker rm (同样需要将替换为Jenkins容器的ID)来删除该容器。

  4. 最后,还可以通过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容器管理命令示例:

  1. docker run: 创建并运行新的容器。

  2. docker start/stop/restart: 分别启动、停止和重启指定的容器。

  3. docker exec: 进入到正在运行中的容器内部执行命令。

  4. docker logs: 输出容器的日志信息。

  5. docker rm: 删除不再需要的容器。

  6. docker images: 列出本地主机上存在的镜像。

  7. docker pull: 从互联网上拉取最新版本的镜像。

  8. docker push: 将自定义的镜像推送到互联网上共享。

  9. 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 -v


    
docker-compose version 1.28.6, build 5db8d86f

设置docker开机启动

sudo systemctl enable docker  sudo systemctl start docker

链接:https://juejin.cn/post/7310412232613101577

(版权归原作者所有,侵删)


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/165554
 
171 次点击