1. 程式人生 > >windows上利用docker搭建mongodb資料庫

windows上利用docker搭建mongodb資料庫

1.在windows上安裝 docker toolbox(安裝過程省略....)

2.開啟Kitematic(docker的圖形介面工具,在第一步會自動安裝好),搜尋mongo,找到官方的映象直接建立,建立後就會自動啟動docker了

在圖形介面中可以看到,mongo現在是在192.168.99.100:32771執行

現在已經可以用Robo 3T連線mongo資料庫了,但是有一個問題就是隻能在自己電腦上連上

3.我們用一個nginx代理

下載nginx,解壓縮,在conf/nginx.conf的最後面增加tcp代理配置程式碼

stream {     upstream mongosocket {         hash $remote_addr consistent;         server 192.168.99.100:32771 weight=5 max_fails=3 fail_timeout=30s;     }     server {         listen 27017;         proxy_connect_timeout 1s;         proxy_timeout 3s;         proxy_pass mongosocket;     } } 點選nginx.exe執行,至此就可以通過我電腦IP:27017來連線訪問mongo了
如果想用命令列操作docker,建議不要用docker自帶的terminal視窗和Kitematic上的 EXEC按鈕開啟的powershell視窗,因為都沒有複製貼上功能,並且一頁顯示的東西太少了,我用 Xshell
連線上docker ssh 192.168.99.100 預設使用者: docker 預設密碼: tcuser
常用docker命令 docker version #檢視版本號 docker images #檢視本機images docker ps #檢視執行的container docker attach 容器名(或容器ID) #登入已經執行的container,輸入exit會停止容器,Ctrl+P+Q可以退出容器但是容器仍然執行 docker stop 容器名(或容器ID) #停止容器 docker start 容器名(或容器ID) #啟動容器 docker kill 容器名(或容器ID) #停止容器 docker commit -m="提交日誌" 容器名(或容器ID) #提交容器到image,這樣可以用image建立更多的容器,比如ubuntu容器中安裝好ssh,vim,jdk等,多個ubuntu例項只需要安裝一次軟體就可以了 docker search centos #還是直接用Kitematic圖形搜尋更爽

docker exec -it 容器ID /bin/bash #同docker attach很像 -t傳遞給容器tty終端 -i是interactive,表示可以互動

docker pull 容器映象名 #拉取容器映象到本地

docker run -p local-port:container-port -v ... --name container-name -d image-name #建立容器並且啟動執行,同一個容器名只能被建立一次,我習慣直接用Kitematic圖形介面工具啟動容器


docker-ubuntu映象簡單加工,從官方映象拉取到本地建立容器執行後

apt-get update

apt-get install vim

#apt-get設定使用阿里映象

cd /etc/apt

cp sources.list sources.list.bak #先備份一下

vi sources.list #ggVG全選,d刪除, i進入insert模式,複製下面的程式碼貼上,esc退出編輯模式,:wq儲存退出

阿里映象代理程式碼

# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
apt-get update

apt-get install openssh-server openssh-client

apt-get install default-jdk  #安裝java1.8,JAVA_HOME=/usb/lib/jvm/default-java

最後 docker commit -m="ubuntu install vim,ssh,jdk" ubuntu,提交更新到本地映象



docker centos

yum install crontabs.noarch  #安裝cron

yum install openssh-clients

yum install sshpass

service直接去掉了,沒必要去執行initscript來安裝service命令了,因為本身有BUG,service命令不能啟動其它程式