Docker For Mac的安裝檔與教學可參考Install and Run Docker for Mac,安裝很簡單就不多做說明
安裝成功後,可以執行docker相關命令試試
docker version
docker --version
docker-compose --version
docker-machine --version
查查docker相關執行檔在哪,可以看到幾個symbolic link都指向剛裝好的docker
ll /usr/local/bin/do*
ll ~/Library/Group\ Containers/group.com.docker/bin
ll /usr/local/bin/do*
ll ~/Library/Group\ Containers/group.com.docker/bin
查看哪些process與docker有關
ps -ef | grep -i com.docker
docker內部各元件是透過socket溝通的,我們可以查查開了哪些socket
netstat -an | grep com.docker
在/va/run下面也可以看到docker.sock檔
ll /var/run/docker.sock
ll ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/
docker info
查看docker的log
syslog -k Sender Docker
我們稍微瞭解一下了docker run命令結構,下面是常用的選項
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
接著來執行一下最簡單的docker container吧
docker run hello-world
從上圖內容可以看出它首先會檢查本地是否有同名的image,如果沒有,預設它會從Docker Hub去拉取該image後再執行該image
之後的訊息也告訴我們,我們已經成功讓docker daemon從docker hub上拉取了一個hello-world的image,並且從這個image建立了一個新的container,並且通過了daemon將輸出傳回docker client,也就是我們現在正在讀取的這段話
查看有哪些images
docker images
查看正在運行的container,因為沒有正在運行中的,所以是空的
docker ps
查看所有container,包含運行中與已停止的,因為剛剛運行過那個hello-world的image,所以有列出來,各位可以注意一下NAMES這欄,每一個container都會有Name,可以自己指定,若沒有指定,系統也會自己自動命名喔
docker ps -a
接著我們來建一個nginx的web server來測試一下,以背景模式的方式,將本機的8080 port綁定到container的80上,並命名為webserver
docker run -d -p 8080:80 --name webserver nginx
上圖docker ps可以看到本機的8080與80綁定,container的名稱webserver
接著我們就可以打開瀏覽器訪問囉
http://localhost:8080/
下面是一些啟動停止刪除container的相關命令
# 正常停止容器,比kill安全一些
docker stop webserver
# 啟動一個已經創建的容器
docker start webserver
# 重啟一個容器
docker restart webserver
# 強制停止一個容器
docker kill webserver
# 刪除一個容器 # 必須先停止才能刪
docker stop webserver
docker rm webserver
# 刪除一個容器,搭配-f就可以直接刪了,實際上是先幫你停止再刪啦
docker rm -f webserver
那要怎樣尋找有哪些images可用呢?比如說要找mysql,可以用
docker search mysql
我們就可以用docker pull來下載image
docker pull mysql
其實像下載啟用停止容器相關的命令,是可以使用Kitematic去管理container,有GUI介面,就變得很簡單,我這裡就不再介紹囉
查看docker的log
syslog -k Sender Docker
我們稍微瞭解一下了docker run命令結構,下面是常用的選項
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
--detach, -d false Run container in background and print container ID --env, -e Set environment variables --interactive, -i false Keep STDIN open even if not attached --link Add link to another container --memory, -m Memory limit --name Assign a name to the container --rm false Automatically remove the container when it exits --tty, -t false Allocate a pseudo-TTY |
docker run hello-world
從上圖內容可以看出它首先會檢查本地是否有同名的image,如果沒有,預設它會從Docker Hub去拉取該image後再執行該image
之後的訊息也告訴我們,我們已經成功讓docker daemon從docker hub上拉取了一個hello-world的image,並且從這個image建立了一個新的container,並且通過了daemon將輸出傳回docker client,也就是我們現在正在讀取的這段話
查看有哪些images
docker images
查看正在運行的container,因為沒有正在運行中的,所以是空的
docker ps
查看所有container,包含運行中與已停止的,因為剛剛運行過那個hello-world的image,所以有列出來,各位可以注意一下NAMES這欄,每一個container都會有Name,可以自己指定,若沒有指定,系統也會自己自動命名喔
docker ps -a
接著我們來建一個nginx的web server來測試一下,以背景模式的方式,將本機的8080 port綁定到container的80上,並命名為webserver
docker run -d -p 8080:80 --name webserver nginx
上圖docker ps可以看到本機的8080與80綁定,container的名稱webserver
接著我們就可以打開瀏覽器訪問囉
http://localhost:8080/
下面是一些啟動停止刪除container的相關命令
# 正常停止容器,比kill安全一些
docker stop webserver
# 啟動一個已經創建的容器
docker start webserver
# 重啟一個容器
docker restart webserver
# 強制停止一個容器
docker kill webserver
# 刪除一個容器 # 必須先停止才能刪
docker stop webserver
docker rm webserver
# 刪除一個容器,搭配-f就可以直接刪了,實際上是先幫你停止再刪啦
docker rm -f webserver
那要怎樣尋找有哪些images可用呢?比如說要找mysql,可以用
docker search mysql
我們就可以用docker pull來下載image
docker pull mysql
其實像下載啟用停止容器相關的命令,是可以使用Kitematic去管理container,有GUI介面,就變得很簡單,我這裡就不再介紹囉
0 意見:
張貼留言