標籤:

普通人的macOS docker用法

普通人的macOS docker用法

來自專欄 老司機筆記

緣起

筆者此番折騰的緣由是 mzucker/noteshrink 的brew安裝版和github repo中的版本在macOS下總會出現這樣那樣的問題,而且macOS下的python版本管理有點混亂,筆者也不是很擅長什麼pyenv,所以乾脆找個「虛擬機」環境來運行。

普通人的docker介紹

docker是Linux的一種實現進程級隔離的技術,它的好處是儘可能的分享資源(磁碟空間,內存等)。其他平台下的docker 都是運行在guest linux 虛擬機里的,但docker本身和virtualbox之類的虛擬機不同,所以這個linux虛擬機上不會再嵌套更多的虛擬機

但是docker體現出的作用和虛擬機有點像,個人使用的話,包括但不限於:命令行運行隔離的linux系統、運行各種應用的服務端,通過x-server和xQuartz(macOS下的)來運行圖形化界面程序。

普通人的快速上手

筆者自用的是macOS,所以先更macOS下的操作,windows看心情更。

  • 去 Docker 註冊,下載docker(為什麼要註冊呢,因為docker有一套類似於github的,可供你發布自製鏡像(image)的機制,所以你有自己的賬號)
  • 運行docker.app
  • 注意,這裡需要你登錄賬號,雖然你也可以用註冊的郵箱登錄,但這會導致在後來使用命令行程序的時候,授權失敗,所以請切記用你自己起的用戶名登錄
  • 為了你在中國的網速體驗,將 https://registry.docker-cn.com 這個鏡像伺服器(mirror)加入docker自帶的代理中

配置cn的docker鏡像

  • 當你這個app中有綠燈和 docker is running後,就可以在命令行里試試了

? ~ docker --infounknown flag: --infoSee docker --help.Usage: docker COMMANDA self-sufficient runtime for containersOptions: --config string Location of client config files (default "/Users/wangren/.docker") -D, --debug Enable debug mode -H, --host list Daemon socket(s) to connect to -l, --log-level string Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info") --orchestrator string Which orchestrator to use with the docker cli (swarm|kubernetes) (default swarm) (experimental) --tls Use TLS; implied by --tlsverify --tlscacert string Trust certs signed only by this CA (default "/Users/wangren/.docker/ca.pem") --tlscert string Path to TLS certificate file (default "/Users/wangren/.docker/cert.pem") --tlskey string Path to TLS key file (default "/Users/wangren/.docker/key.pem") --tlsverify Use TLS and verify the remote -v, --version Print version information and quit

  • 拉一個鏡像

docker pull python:latest

這個意思是,讓docker 拉一個 python(3)最新版的鏡像(這裡你隨性,但其實在實際使用中,應該寫一個具體的版本號,如:

docker pull python:3.6.0docker pull python:2.7.0

注意,這裡雖然你只說自己想拉python,但是你其實拉了python和運行它的linux環境

? ~ docker run -it --rm python bin/bashroot@71a7424d1a36:/# uname -aLinux 71a7424d1a36 4.9.87-linuxkit-aufs #1 SMP Wed Mar 14 15:12:16 UTC 2018 x86_64 GNU/Linuxroot@71a7424d1a36:/# aptapt 1.0.9.8.4 for amd64 compiled on Dec 11 2016 09:48:19Usage: apt [options] commandCLI for apt.Basic commands: list - list packages based on package names search - search in package descriptions show - show package details

於是就可以成功進入docker 中的 linux 環境了

可以通過 -v 的參數,來實現文件夾的共享:

docker run -it --rm -v $PWD:/sharedFolder python bin/bash

這裡我們就把宿主機上面的「當前文件夾」 裝載到了「虛擬機」上的 /sharedFolder 中

docker還有很多騷操作,比如自己寫Dockerfile來創建自定義的鏡像,或者通過宿主機上的x11應用來接受虛擬機的x11信息,從而達到在docker中運行gui程序的效果。這些內容會在以後的文章中補充。

推薦閱讀:

在 Mac OS X 下完全不用滑鼠是什麼體驗?
macbook pro,耳機一按到播放鍵iTunes就自動啟動並播放,可有辦法取消?
Mac 下需要整理磁碟碎片嗎?
El Capitan Dev Beta 1 的中日字體配置
自己動手給 macOS 文件夾換上喜歡的圖標

TAG:macOS | Linux | Docker |