# docker 網站開發-環境建立 ## 安裝Docker-desktop 先去官網上下載 https://www.docker.com/products/docker-desktop/  一定要使用**系統管理員**身分開啟  接下來按照步驟裝完,WSL2也要安裝 ### 在WSL環境直接安裝Docker(不透過Desktop) 先安裝WSL https://learn.microsoft.com/zh-tw/windows/wsl/install ``` wsl --install wsl --list --online # 查詢安裝清單 wsl --install -d Ubuntu # 選擇Ubuntu安裝 ``` 檢查一下版本 ``` wsl -l -v ``` 安裝docker `sudo curl -sSL https://get.docker.io/ | sh` ### 設定權限 ``` sudo groupadd docker sudo usermod -aG docker $USER newgrp docker ``` ## 建立橋接器IP 建立網域 `docker network create --subnet=172.18.0.0/16 Aslent` 查詢網域 `docker network ls`  ## 安裝Portainer(Docker管理工具) 直接從docker下載 ```shell= sudo docker volume create portainer_data sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest ``` 進入網頁(一定要https) https://192.168.1.103:9443/ 建好管理者帳密後(Admin),即可到主畫面  進入Container List,一開始只有portainer,其餘4個是後面建出來的  同樣的下指令也可察看當前Container List  ## 安裝Jenkins(專案部屬管理工具) 特別需要注意-v的參數設定,這會關係到Jenkins可否使用到docker的資源 ```shell= docker pull jenkins/jenkins:lts-jdk11 docker run --name jenkins -u root -d --restart always -p 8080:8080 -p 50000:50000 -v C:\Users\MyUser\jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts ``` 資料備份位置 * C:\Users\MyUser\jenkins_home 進入網頁 https://192.168.1.103:8080/ 一開始會要求輸入密碼驗證,到C:\Users\MyUser\jenkins_home\secrets找一下 選擇建議的設定 等候jenkins完成plugin安裝 跳轉至主畫面  ### jenkins內安裝docker 後續的作業需要用到docker指令 點此進入jenkins console  執行以下指令 ```shell= docker exec -it jenkins_container_id bash apt-get update && apt-get install -y docker.io ``` ### Jenkins使用docker的權限開啟 一般的作法 `usermod -aG docker jenkins` 直接修改,但每次重啟需重新調整 `chmod 777 /var/run/docker.sock` `chown $USER /var/run/docker.sock` https://stackoverflow.com/questions/48568172/docker-sock-permission-denied https://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo ### 新增作業  輸入git網址與金鑰  填入主分支的名稱  設定建置步驟  shell: ```bash= #!/bin/bash VERSION=`cat version` IMAGE="axxxxx/axxxxx_image:$VERSION" echo "IMAGE NAME : $IMAGE" docker build -t $IMAGE . --no-cache docker run -d --name axxxxx_container \ --net axxxxx --ip 172.18.0.3 --restart always \ --label io.portainer.accesscontrol.public \ # 設定為protainer公開 -e FLASK_APP=main.py -e FLASK_ENV=production -e TZ=Asia/Taipei \ -e SQL_ACCOUNT=root -e SQL_PASSWORD=henry123\ -p 9000:9000 $IMAGE ``` ### 執行作業 執行之前先將原有的container刪除,以便後續可順利建立新的container 執行作業  接下來等他跑完建置流程,綠色打勾才算成功  失敗的話可以看裡面的錯誤訊息  成功之後去Portainer看看是否有正常運作 ## mariadb 下載之前,先製作config檔(conf.d/xxxx.cnf) 這邊要注意權限問題,.cnf只能有r權限,外層資料夾(conf.d)需具有rx權限 ``` [mysqld] innodb_buffer_pool_size = 2G innodb_buffer_pool_chunk_size=64M #innodb_buffer_pool_instances=8 general_log_file='/var/log/mysql/general.log'; log_slow_queries=/var/log/mysql/slow.log log_error='/var/log/mysql/error.log'; [mariadb] #default_time_zone = 'Asia/Taipei' ``` 從docker下載並且run ```shell= docker run -d -p 13306:3306 --name some_mariadb C:\Users\User\some_mariadb:/var/lib/mysql -p 13306:3306 --env MARIADB_USER=henry --env MARIADB_PASSWORD=henry123 --env MARIADB_ROOT_PASSWORD=henry123 --env TZ=Asia/Taipei mariadb:latest ``` 使用bat `C:\Users\MyUser>command\mariadb.bat` 設定檔的位置 * C:\Users\MyUser\some_mariadb\mariadb_config 資料表的位置 * C:\Users\MyUser\some_mariadb\mariadb 檢查設定檔設定是否有套用 
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.