開始使用Docker

2021-09-20 06:51:52 字數 2286 閱讀 5290

這是在mac上的一次從零開始學docker的實踐,如果想知道的更多,請閱讀官方文件或者docker —— 從入門到實踐,本文的核心科技是動手

docker是基於linux container技術的,並不支援原生的mac系統,mac上的docker是執行於乙個linux虛擬機器內的。所以可以在mac上裝個virtualbox,然後安裝乙個linux發行版(例如coreos),之後所有的操作就在linux中進行了。但是這種方法操作起來太麻煩了,我可不想每次使用docker的時候都啟動virtualbox,然後啟動linux虛擬機器,再ssh到虛擬機器上,能不能讓程式自動的執行這一系列操作。

還好已經有這樣的程式了,boot2docker是你的好幫手^_^。

使用homebrew安裝boot2docker:

shell$ brew install boot2docker
程式會自動安裝docker客戶端和boot2docker,網路不好的話喝杯咖啡再回來看看,不行的話多試幾次,位址被牆的話請科學上網。

初始化boot2docker:

shell$ boot2docker init
啟動boot2docker:

shell$ boot2docker start
顯示環境變數:

shell$ boot2docker shellinit

writing /users/wzy/.boot2docker/certs/boot2docker-vm/ca.pem

writing /users/wzy/.boot2docker/certs/boot2docker-vm/cert.pem

writing /users/wzy/.boot2docker/certs/boot2docker-vm/key.pem

export docker_host=tcp:

export docker_cert_path=/users/wzy/.boot2docker/certs/boot2docker-vm

export docker_tls_verify=1

顯示的結果會和你的電腦上的結果不同。

設定環境變數:

shell$ eval "$(boot2docker shellinit)"
這個設定只針對當前會話有效,當你重新開啟乙個會話後必須再次設定。

或者直接修改.bashrc或者.zshrc,新增boot2docker shellinit結果中的export語句。

執行docker version沒有任何錯誤的話,說明docker客戶端環境已經配置好了,接下來就可以使用docker了。

下面我們在docker中啟動乙個nginx伺服器。

shell$ docker run -d -p --name web nginx
shell$ docker ps
檢視正在執行的docker容器。

shell$ docker port web

443/tcp -> 0.0.0.0:49153

80/tcp -> 0.0.0.0:49154

檢視埠的對映關係。

通過瀏覽器開啟localhost:49154,發現無法訪問,這並不是伺服器沒有啟動,而是docker埠對映中的0.0.0.0並非是我們的電腦,而是執行docker的linux虛擬機器,即docker將nginx監聽的80埠對映到了虛擬機器的49154埠,我們要訪問的是虛擬機器的49154埠,虛擬機器的位址可以通過命令boot2docker ip獲得。

shell$ boot2docker ip

192.168.59.103

訪問192.168.59.103:49154即可。

停止並刪除容器:

shell$ docker stop web

$ docker rm web

到這裡我們已經親自感受了docker,下面還需要進一步學習。

開始使用Unix

本人使用的macbook pro md101,通過mac的終端登入到unix系統。登入unix系統 首先在終端中輸入login,然後終端會顯示login 然後輸入使用者標識,按return後,會顯示password 輸入密碼即可登入,隨後會顯示上次登入的時間以及使用的終端,無論何時,你都要花時間檢查...

開始使用Gulp

結語參考與擴充套件 接觸gulp不多,感觸卻多。不過一句話 省了好多麻煩。如果你也是做web前端的,並且也想更加便捷高效的去完成自己的專案,那麼可以嘗試使用一下gulp。首先看看gulp的定義 gulp是乙個基於流的自動化構建工具。大家都明白什麼是自動化 就是懶人不用動手了唄 構建工具就是說這是乙個...

MQTT 開始使用

嵌入式 個人開發環境 ubuntu 14.04 mqtt messagequeueing telemetry transport protocol 全稱 訊息佇列遙感傳輸協議,是ibm開發的乙個即時通訊協議。mqtt是面向m2m和物聯網的連線協議,執行在tcp協議棧之上,採用輕量級發布和訂閱訊息傳輸...