本章節(jié)主要來講述docker desktop 界面版本使用以及docker-compose 的安裝和使用
GIT地址:添加鏈接描述
docker 專欄:點擊此處
系列文章
章節(jié) | |
---|---|
1 | docker以及docker-compose在window以及l(fā)inux的安裝 |
2 | 項目對應(yīng)的docker-compose結(jié)構(gòu) |
3 | 怎么將docker-compose項目部署到服務(wù)器上 |
4 | 配置服務(wù)器JENKINS環(huán)境 |
額外篇
章節(jié) | |
---|---|
1 | Sentry 是一個開源的錯誤監(jiān)控和日志聚合平臺-- 通過docker-compose 安裝Sentry |
前言
做了一個項目,用nodejs寫的后端,vue寫的PC端以及移動端,數(shù)據(jù)庫用mysql,現(xiàn)在要部署到服務(wù)器上。由于怕下次部署又要一堆操作,就弄了個docker,并且以此文章來做筆記以及分享。
期望
- 服務(wù)器:換了服務(wù)器,只需要服務(wù)器安裝好docker+docker-compose,并將此文件配置拷貝到服務(wù)器,編譯一下,就可以有個項目框架,再對jenkins進行安裝環(huán)境配置就可以了
(jenkins的項目也同步到了jenkins/jobs中,所以項目不用重復(fù)配置)
。 - 代碼更新:以后有新版本的代碼,可以通過jenkins打包,并且實時發(fā)布,對于web打包就是正常的build一下就可以,nodejs后端比較麻煩。
這里記錄下版本,因為不同時期總會有一些參數(shù)跟環(huán)境要求不一樣了…
大家到時候就可以弄指定版本應(yīng)該可以解決問題…
Docker版本:Docker version 23.0.0, build e92dd87
docker-compose版本: version 1.26.2
docker
- 搜索倉庫鏡像:docker search 鏡像名
- 拉取鏡像:docker pull 鏡像名
- 查看正在運行的容器:docker ps
- 查看所有容器:docker ps -a
- 刪除容器:docker rm container_id
- 查看鏡像:docker images
- 刪除鏡像:docker rmi image_id
- 啟動(停止的)容器:docker start 容器ID
- 停止容器:docker stop 容器ID
- 重啟容器:docker restart 容器ID
- 啟動(新)容器:docker run -it ubuntu /bin/bash
- 進入容器:docker attach 容器ID或docker exec -it 容器ID /bin/bash,推薦使用后者。
1. window 開發(fā)環(huán)境
docker 安裝
點擊下載前期學習開發(fā)用,很方便
docker 下載并且運行
界面化了,當然也可以跟linux一樣使用指令...
docker 配置
運行后會彈出配置框
可以在這里配置端口映射以及數(shù)據(jù)卷,用linux來說就是掛載,這邊給個9999端口號。
點擊后運行容器,并且進來到這個頁面,當然也可以通過菜單的containers 進入到容器,直接可以看到容器里面的日志。
還可以通過這里直接進入到該容器的命令行,相對于命令行是傻瓜式操作了。。。
從容器列表中,點擊步驟2,就可以彈出來了,具體的nginx配置,到其他章節(jié)講,這里主要講安裝以及使用。
每個容器都有對應(yīng)的暫停跟刪除按鈕,這里就不一一成列了。。。
2. linux 部署環(huán)境
- 卸載docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
- 安裝
Docker官方和國內(nèi)daocloud都提供了一鍵安裝的腳本,使得Docker的安裝更加便捷。
官方的一鍵安裝方式:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
國內(nèi) daocloud一鍵安裝命令:
curl -sSL https://get.daocloud.io/docker | sh
運行docker daemon
systemctl start docker
docker-compose
docker-compose 沒有圖形化界面,都是用命令的,這邊window+linux通用指令。
docker-compose 安裝
pip 部分環(huán)境可能要安裝一下
# 切換清華源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安裝
sudo pip3 install docker-compose
在linux 環(huán)境出錯了,這里做下筆記,記錄解決方案,每臺服務(wù)器可能都不一樣,自己看情況。
- 錯誤1
運行docker
sudo pip3 install --ignore-installed requests
- 錯誤2:提示版本太低了,更新就好了
pip3 install --upgrade pip
docker-compose 指令集
獲得一個命令的幫助
docker-compose 命令 --help
構(gòu)建并啟動所有容器,如果鏡像存在就重新構(gòu)建
docker-compose up -d --build
啟動所有服務(wù)
docker-compose up -d
構(gòu)建啟動nignx容器
docker-compose up -d nginx
-f 指定使用的Compose配置文件啟動,默認為docker-compose.yml,可以多次指定。
docker-compose -f docker-compose.yml up -d
運行一個服務(wù),并在服務(wù)上執(zhí)行一個命令
docker-compose run 容器id或容器名 ip addr
登錄到nginx容器中
docker-compose exec nginx bash
此命令將會停止 up 命令所啟動的容器,并移除網(wǎng)絡(luò)
docker-compose down
列出項目中運行的所有容器
docker-compose ps
列出項目中運行及未運行的所有容器
docker-compose ps -a
列出所有運行的服務(wù)容器
docker-compose ls
列出所有服務(wù)容器(包括未運行的容器)
docker-compose ls -a
重新啟動nginx容器
docker-compose restart nginx
構(gòu)建鏡像
docker-compose build nginx
不帶緩存的構(gòu)建
docker-compose build --no-cache nginx
查看各個服務(wù)容器內(nèi)運行的進程
docker-compose top
查看nginx的實時日志
docker-compose logs -f nginx
列出 Compose 文件包含的鏡像
docker-compose images
驗證文件配置,當配置正確時,不輸出任何內(nèi)容,當文件配置錯誤,輸出錯誤信息。
docker-compose config
以json的形式輸出nginx的docker日志
docker-compose events --json nginx
暫停nignx容器
docker-compose pause nginx
恢復(fù)ningx容器
docker-compose unpause nginx
刪除容器(刪除前必須關(guān)閉容器,執(zhí)行stop)
docker-compose rm nginx
強制刪除容器(不必先關(guān)閉容器)
docker-compose rm -f nginx
停止nignx容器
docker-compose stop nginx
啟動nignx容器
docker-compose start nginx
重啟項目中的nignx容器
docker-compose restart nginx
下載依賴的鏡像
docker-compose pull
推送服務(wù)依的鏡像
docker-compose push
設(shè)置指定服務(wù)運行的容器個數(shù)。通過service=num的參數(shù)來設(shè)置數(shù)量
docker-compose scale web=3 db=2
查看版本信息
docker-compose version
docker-compose 使用
這里扔一個mysql+adminer(數(shù)據(jù)庫管理服務(wù))作為demo,后期完整的配置在后續(xù)文章中展示。
version: '3.4'
services:
mysql1: #mysql容器
image: mysql
container_name: mysql1
restart: always
# 授權(quán)
user: root
privileged: true
environment: ##設(shè)置環(huán)境便變量
TZ: Asia/Shanghai ##設(shè)置時區(qū)
MYSQL_ROOT_PASSWORD: 123456 #這里自行設(shè)置root用戶的密碼
command: ##設(shè)置容器運行時執(zhí)行的命令
--default-authentication-plugin=mysql_native_password
volumes:
- /C/docker-compose/mysql/datadir/:/var/lib/mysql
ports:
- 3306:3306 #宿主機和容器間的端口映射,可自行配置
adminer1: ##指定服務(wù)名為adminer
image: adminer ##指定要運行的鏡像為adminer adminer是一個mysql數(shù)據(jù)庫的web工具
container_name: adminer1 ##指定容器名
user: root
privileged: true
restart: always ##設(shè)置重啟策略為always
ports: ##指定映射的端口(宿主機端口:容器內(nèi)部端口)
- 10080:8080
depends_on: ##設(shè)置容器的依賴關(guān)系,該adminer容器關(guān)聯(lián)mysql容器
- mysql1 ##mysql這個鏡像安裝后,才會安裝這個鏡像
在該文件目錄中運行腳本。
# 記得先開打docker 服務(wù)...
# systemctl start docker
# 運行腳本
docker-compose up -d
如果端口被占用了,記得先停止一下
打開,adminer,根據(jù)配置文件填寫信息,記得服務(wù)器,這個比較尷尬,很多copy的文章都沒有提示這個…
最終效果 ; )文章來源:http://www.zghlxwxcb.cn/news/detail-760555.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-760555.html
到了這里,關(guān)于docker持久化部署vue前端nodejs后端項目-- 01. docker以及docker-compose在window以及l(fā)inux的安裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!