在這里先亮一下所涉及的環(huán)境設(shè)備 阿里云服務(wù)器:
CPU&內(nèi)存:2核(vCPU)2 GiB
操作系統(tǒng):CentOS 8.5 64位
第一步安裝docker
安裝命令:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
當(dāng)出現(xiàn)如下命令:
說明已經(jīng)安裝成功了
第二步安裝docker-compose
這一步比較折騰, 按照網(wǎng)上的方法,使用如下命令, 即可完成下載:
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
但卻得到如下結(jié)果:
下載失敗,并且提示:Permission denied
無權(quán)限問題
有效的方法就是這兩種:
輸入如下命令:
sudo usermod -aG docker $USER chmod +x /usr/local/bin/docker-compose
然后結(jié)果如下:
報(bào)出了一個新的問題
安裝失敗或缺失
報(bào)錯:
/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,國內(nèi)的有些快捷方式有些是有問題的,可能短期內(nèi)能夠使用,時間長了就會出現(xiàn)問題
盡量直接使用GitHub的,如果一次下載不成,多執(zhí)行幾遍就可以
命令如下:
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
以下這部分內(nèi)容是挪用《Docker + Jenkins + Nginx實(shí)現(xiàn)前端自動化部署》來的
創(chuàng)建docker的相關(guān)目錄,方便維護(hù)
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
創(chuàng)建docker-compose.yml、nginx.conf配置文件
cd /docker/compose touch docker-compose.yml cd /docker/nginx/conf touch nginx.conf
最終目錄結(jié)構(gòu)如下:
+ docker + compose - docker-compose.yml //docker-compose配置 + html //各環(huán)境代碼目錄(實(shí)際項(xiàng)目可能不在同一目錄) + dev //dev環(huán)境代碼目錄 + release //release環(huán)境代碼目錄 + pro //pro環(huán)境代碼目錄 + 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環(huán)境 server { #監(jiān)聽的端口 listen 8001; server_name localhost; #設(shè)置日志 # access_log logs/dev.access.log main; #定位到index.html location / { #linux下HTML文件夾,就是你的前端項(xiàng)目文件夾 root /usr/share/nginx/html/dev/dist; # root /home/html/dev/dist; #輸入網(wǎng)址(server_name:port)后,默認(rèn)的訪問頁面 index index.html; try_files $uri $uri/ /index.html; } } #sit環(huán)境 server { #監(jiān)聽的端口 listen 8002; server_name localhost; #設(shè)置日志 # access_log logs/sit.access.log main; #定位到index.html location / { #linux下HTML文件夾,就是你的前端項(xiàng)目文件夾 root /usr/share/nginx/html/sit/dist; # root /home/html/dev/dist; #輸入網(wǎng)址(server_name:port)后,默認(rèn)的訪問頁面 index index.html; try_files $uri $uri/ /index.html; } } # include /etc/nginx/conf.d }
重點(diǎn):進(jìn)入服務(wù)器控制臺安全組配置添加三個都端口。8080:對應(yīng)jenkins 8001:對應(yīng)dev環(huán)境 8002:對應(yīng)sit環(huán)境
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是一個定義的服務(wù)名稱。user: root指定了 Jenkins 容器使用 root 權(quán)限。restart: always表示容器總是在退出時重啟。image: jenkins/jenkins:lts指定了 Jenkins 鏡像及其版本。container_name: jenkins是容器的名稱。ports定義了容器內(nèi)外端口的映射。volumes定義了主機(jī)文件系統(tǒng)路徑與容器內(nèi)路徑的掛載關(guān)系。image: nginx指定了 Nginx 鏡像。container_name: nginx_dev是容器的名稱。
docker如何移除jenkins
要從Docker中刪除Jenkins容器,可以按照以下步驟進(jìn)行操作:
首先,使用docker ps -a命令查看所有正在運(yùn)行的或已經(jīng)停止的容器。確認(rèn)Jenkins容器的ID或名稱。
然后,使用docker stop
接下來,使用docker rm
最后,還可以通過docker images命令列出本地存儲庫中的所有圖像,并使用docker rmi
注意事項(xiàng):
在執(zhí)行上述命令之前,請確保沒有其他重要數(shù)據(jù)依賴于這些容器或鏡像。
若要完全清理Docker系統(tǒng)中不再使用的對象,可以使用docker system prune命令。
第四步啟動環(huán)境
先啟動docker, 如果已經(jīng)設(shè)置自動啟動,可忽略
systemctl start docker
然后啟動Jenkins、Nginx,這一步要在docker-compose.yml當(dāng)前目錄下,執(zhí)行該命令,不然會報(bào)找不到
docker-compose up -d
查看運(yùn)行狀態(tài)
docker-compose ps -a
[root@iZ7xvdmlqb3e0e0teakf5vZ ~]# cd /docker/compose [root@iZ7xvdmlqb3e0e0teakf5vZ compose]# docker-compose ps -a
然后訪問地址,即可
因?yàn)槲恼缕?,所以Jenkins的配置和使用放到第二篇。歡迎關(guān)注
查看Docker容器的命令,可以使用docker ps -a命令。這將顯示所有正在運(yùn)行或已經(jīng)停止的容器及其相關(guān)信息,包括容器ID、鏡像名稱、創(chuàng)建時間等。
如果需要獲取特定容器的詳細(xì)信息,可以使用docker inspect
下面是一些常用的Docker容器管理命令示例:
docker run: 創(chuàng)建并運(yùn)行新的容器。
docker start/stop/restart: 分別啟動、停止和重啟指定的容器。
docker exec: 進(jìn)入到正在運(yùn)行中的容器內(nèi)部執(zhí)行命令。
docker logs: 輸出容器的日志信息。
docker rm: 刪除不再需要的容器。
docker images: 列出本地主機(jī)上存在的鏡像。
docker pull: 從互聯(lián)網(wǎng)上拉取最新版本的鏡像。
docker push: 將自定義的鏡像推送到互聯(lián)網(wǎng)上共享。
docker build: 根據(jù) Dockerfile 構(gòu)建新的鏡像。
進(jìn)入服務(wù)器檢查docker、docker-compose版本
[root@VM-12-6-centos ~]# docker -v Docker version 20.10.5, build 55c4c88 [root@VM-12-6-centos ~]# docker-compose -v docker-compose version 1.28.6, build 5db8d86f
設(shè)置docker開機(jī)啟動
sudo systemctl enable docker sudo systemctl start docker
審核編輯:湯梓紅
-
cpu
+關(guān)注
關(guān)注
68文章
10854瀏覽量
211574 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9123瀏覽量
85322 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6801瀏覽量
123283 -
阿里云
+關(guān)注
關(guān)注
3文章
952瀏覽量
43006 -
Docker
+關(guān)注
關(guān)注
0文章
457瀏覽量
11846
原文標(biāo)題:云部署:阿里云Docker+Jenkins構(gòu)建自動化部署
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論