摘要:本地開發環境是影響工作效率最重要的因素還有一個是,以后有時間會專門寫這個一般來說有以下幾種方案可以選擇原生安裝這個是最原始也是最麻煩的,比如搞,要自己裝搞不好還得裝個。
本地開發環境是影響工作效率最重要的因素(還有一個是IDE,以后有時間會專門寫這個)
一般來說有以下幾種方案可以選擇
原生安裝 這個是最原始也是最麻煩的,比如搞PHP,要自己裝nginx+php+mysql+redis 搞不好還得裝個node、composer、memcached。這個搞法基本上熟練也得一天出去了。Mac還好,Windows就要無盡的google了。
虛擬機 這個有兩種方案,我都嘗試過,一種是用VM,安個centos,這種方法和原生安裝差不多,也比較折騰,另外VM虛擬機占用系統資源太大,每次開機都比較慢。另一種就是用vargrant,這個方法的好處是比較輕,開機快。但是終究是虛擬機,最大的問題就是目錄共享問題,造成無法正常安裝node,總之各種坑
Docker 最終選擇了Docker的方案。Docker基本上是集合了上面的所有優點了,他自身最大的好處就是想用的時候拉起來,不想用的時候干掉,數據和容器是分開的。另外鏡像都是官方的,穩定,靠譜。缺點也是有的,就是底層其實還是用的linux,所以在windows上跑不大穩定。
我目前用的方案是
centos7 官方鏡像 里面安裝了 nginx php node
mysql 官方鏡像
redis 官方鏡像
這樣一共需要運行三個容器,數據都-v 到本地磁盤,容器干掉了數據也不丟失。
常用命令 鏡像搜索鏡像
$ docker search xxx
如果出現 connection refused 可以試試重啟docker
下載鏡像
$ docker pull xxx
刪除鏡像
$ docker rmi xxx
本地容器保存快照 生成鏡像壓縮文件
$ docker export -o dev-latest.tar 7e4b0
導入鏡像
$
保存鏡像
$ docker save -o redis-latest.tar 9813
容器導入 是將當前容器 變成一個新的鏡像
鏡像導入 是復制的過程
save 保存鏡像所有的信息-包含歷史
export 只導出當前的信息
查看當前運行的容器
$ docker ps
$ docker ps -a
$ docker stats
$ docker top
查看當前docker版本
$ docker info
運行容器
$ docker run -d [-p 主機端口:容器端口] --name [容器名自定義] [-v 主機/目錄:容器/目錄] [鏡像名]
例如
centos
$ docker run -d -p 80:80 --name dev -v D:/docker/dev/www:/home/www centos
redis
$ docker run -d -p 6379:6379 --name dev-redis -v D:/docker/redis/data:/data redis
mysql
$ docker run --name dev-mysql -v D:/docker/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=111111 -d mysql
停止 開啟 重啟
$ docker stop
$ docker start
$ docker restart
刪除容器
$ docker rm
如果有自己的倉庫可以
$ docker login -u 用戶名 -p 密碼 倉庫地址
進入容器
$ docker exec -it [容器名] /bin/bash
如果碰到開機報錯:
Docker command did not complete within the allowed timeout. Output:
可能是windows 防火墻問題
在防火墻里放開下面這倆exe
C:Program FilesDockerDockerDocker for Windows.exe
C:Program FilesDockerDockerDockerCli.exe
PS 如果發現容器里面掛載的目錄不見了
但是執行 docker inspect 發現這個配置其實是有的
那么 可能是掛載的主機磁盤沒有寫權限 改完后重啟試試
容器間通信默認可以用內網IP通信 網段是 172.17.0.1...
可以通過下面的命令查看容器IP
$ docker inspect --format="{{.NetworkSettings.IPAddress}}" CONTAINER_ID
這里注意 容器的IP是根據啟動順序來的,不是一直固定的,所以啟動的時候最好有一定順序,避免老去改配置的麻煩
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27046.html
摘要:核心對名字空間的支持完全隔離了工作環境中應用程序的視野,包括進程樹網絡用戶與掛載文件系統,而核心的提供資源隔離,包括存儲器與網絡。因此更為輕量快速和易于管理。 docker 如日中天,這不是單純的炒概念,docker 確確實實解決了開發與運維的痛點,因此在企業開發中得到了非常廣泛的使用,本文對于 docker 的這些基本知識點再做一些簡單回顧。 什么是 docker 根據 wikip...
摘要:協議學習常見請求方法學習和學習接口的基本概念接口文檔認識接口測試用例編寫接口測試工具使用軟件測試自動化進階性能測試性能測試的技術要求很高,不僅僅要對性能測試的指標測試分類測試設計有很深刻的理解。 ...
摘要:開場白作為一個技術團隊的,你是如何保證成員的開發環境達到公司的標準,或者是你定制的最低要求的如果你的回答是差不多就行了,有問題再說,那么,你已經在給自己挖坑了。好的,成員們開始構建你定制的開發環境了。 開場白 作為一個技術團隊的Leader,你是如何保證成員的開發環境達到公司的標準,或者是你定制的最低要求的?如果你的回答是:差不多就行了,有問題再說,那么,你已經在給自己挖坑了。 同事A...
摘要:蠻吉為什么這么做集中管理,使用方便,安裝更方便,不用到各各目錄上去找配置文件啊,啟動文件之類的。蠻吉如果我想修改的配置怎么辦可以使用進入容器里面找到并修改,命令退出容器。 What is Docker? docker 是一個可以放東西的容器,那東西是什么?可以是redis、nginx、mysql。總之你能在系統上安裝的都可以在dokcer里面安裝。 蠻吉:為什么這么做? 集中管理,使用...
摘要:應用化極簡教程陳光劍基于的企業級應用開發最佳實踐前面的章節中,我們都是在環境中開發運行測試應用程序。關鍵字是分布式應用微服務容器虛擬化。通常,在企業項目實踐中,會實現一套應用部署發布的自動化運維平臺工具。 Spring Boot 應用 Docker 化 《Spring Boot 2.0極簡教程》(陳光劍)—— 基于 Gradle + Kotlin的企業級應用開發最佳實踐 前面的章節中,...
閱讀 3448·2023-04-26 00:39
閱讀 4039·2021-09-22 10:02
閱讀 2532·2021-08-09 13:46
閱讀 1098·2019-08-29 18:40
閱讀 1444·2019-08-29 18:33
閱讀 773·2019-08-29 17:14
閱讀 1513·2019-08-29 12:40
閱讀 2970·2019-08-28 18:07