前戲
本小白早上突然對mongodb的可靠性再次產生深厚的興趣,
然後查詢到4.0已經支持副本集級別的事務了,
雖然不太明白,
但重要的是事務不向下兼容,
必須把兼容性提高到4.0
到我的ubuntu上查一下
mongo --version
結果是3.6.3
於是考慮升級一下mongodb
查到了資料,比如:
讓你的mongodb支持事務---升級到mongodb 4.0
但,重點是這個鏈接:
在 Ubuntu Linux 上安裝最新版本的 MongoDB
我的注意力全部被評論區的docker吞噬
正菜
於是我找到了這篇文章:
這可能是最爲詳細的Docker入門吐血總結
從版權角度來說,這並不是作者的原文。
但下方的來源鏈接已經不是原文,而是作者主站。
可惜了,就看這個吧。
順便說一下,這個作者,是個21歲大萌弟,哈哈,好可愛。
應用
Docker 資源彙總
MAC下docker搭建Nginx+PHP+MySQL
延伸
大家生產環境用 Docker 嗎?
除去評論區一堆惡搞的回覆外,真實情況很明顯了:
現在在生產環境用的是很普遍的,通常互聯網公司都在用。
彈性資源佔用是很大優勢,需要持續集成快速迭代的項目通常都容器化部署。
在線業務全部 docker 化
不僅僅是 docker,還用 k8s。。。
生產環境還得靠 k8s
再用 docker swarm
然後搜了兩篇關於k8s的文章:
十分鐘帶你理解Kubernetes核心概念【乾貨滿滿,推薦!】
乾貨滿滿!10分鐘看懂Docker和K8S【其實很水】
學習規劃
速成是不可能的,
想一口吃個胖子,會被噎死…
所以我還是慢慢來,先在mac上搞一個,試着玩。
熟練之後,把ubuntu上的mongodb升級了。
然後有時間再搞k8s
還有一個分支,是mac上使用docker
由於歷史原因,mac上的docker貌似演化了很多次,如今我安裝的是:
Docker version 19.03.1, build 74b1e89
有這麼一個帖子,算作一個引子,將來無聊了可以研究一下mac的docker:
Mac 下如何僅安裝 docker CLI 而不安裝整套 Docker
Docker Version Manager
實戰
在b站看了視頻,鏈接我時間放上來
放一張神圖,命令都在神圖裏:
進階:
其實容器之間都是屬於是一個網段的:172.17.0.2/16
也就是說,我們啓動一個nginx容器,然後再啓動一個alpine,curl 172.17.0.2
就能訪問到nginx的主頁。
如果覺得記ip很麻煩,還可以用--link來映射
$ docker run -d -p80:80 --name mynginx nginx //起名爲mynging
$ docker run -dit --link mynginx:mynginx alpine //--link第一個mynginx是剛纔容器名稱,第二個mynginx是內部的域名。它會出現在alpine的`/etc/hosts`中
這樣在alpine中,curl mynginx即可訪問了。
插播一條本臺剛剛收到的消息:
發現了一些極小的linux:alpine,並且:
目前 Docker 官方已開始推薦使用 Alpine 替代之前的 Ubuntu 做爲基礎鏡像環境。這樣會帶來多個好處。包括鏡像下載速度加快,鏡像安全性提高,主機之間的切換更方便,佔用更少磁盤空間等。
這裏有一些命令,記錄一下,略有不同
$ docker run -dit --name myalp alpine //如果只寫-d,則啓動不了
$ docker exec -it myalp sh //alpine很小,所以只有sh,連bash都沒有
# apk add curl //使用apk add來安裝常用軟件
消息插播結束,繼續正文
但,如果我們搭建lnmp環境呢?這樣一個一個--link有點慢啊
於是請出今天的主角:docker-compose
首先,我們做一些準備文件:
$ tree
.
├── conf
│ └── nginx.conf
├── docker-compose.yml
└── html
├── index.html
├── index.php
└── mysql.php
nginx.conf:
nginx.conf參考:https://blog.csdn.net/weixin_...
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
include fastcgi_params;
}
}
}
docker-compose.yml:
version: "3"
services:
nginx:
image: nginx:alpine
ports:
- 80:80
volumes:
- /root/html:/usr/share/nginx/html
- /root/conf/nginx.conf:/etc/nginx/nginx.conf
php:
image: devilbox/php-fpm:5.2-work-0.89 //php-fpm是在hub.docker.com中搜索的,選擇的第二個。
volumes:
- /root/html:/var/www/html
mysql:
image: mysql:5.6
environment:
- MYSQL_ROOT_PASSWORD=123456
全部文件創建好了,就可以啓動啦:
docker-compose up -d //這樣就可以運行剛纔的配置文件
更多關於docker-compose的介紹:
Docker快速入門——Docker-Compose