Mac Docker入門安裝使用

最新mac系統千萬不要用brew安裝,推薦使用官方文檔:https://docs.docker.com/docker-for-mac/#proxies

安裝鏡像:
docker pull centos:latest

latest代表拉取最新的鏡像,當然可以先搜索下

docker search centos
查看本地鏡像庫:
tongkun@localhost java (master) $ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        9 days ago          202MB

在列出信息中,可以看到幾個字段信息:

來自于哪個倉庫,比如 ubuntu
鏡像的標記,比如 16.04
它的 ID 號(唯一),比如e4415b714b62
創建時間
鏡像大小

啟動鏡像:
tongkun@localhost java (master) $ docker run -it centos bash 
[root@fc68ad1849ef /]# 

-it 表示運行在交互模式,是-i -t的縮寫,即-it是兩個參數:-i和-t。前者表示打開并保持stdout,后者表示分配一個終端(pseudo-tty)一般這個模式就是可以啟動bash,然后和容器有命令行的交互

啟動鏡像后,分配了一個新終端,命令行變為[root@fc68ad1849ef /]#說明啟動成功,并且登陸到了根目錄

在這里可以隨意使用Linux命令了,但是有些命令是沒有的,需要手動安裝,比如vim,可以使用yum安裝,命令:

yum install vim
退出容器

如果使用exit,命令退出,則容器的狀態處于Exit,而不是后臺運行。如果想讓容器一直運行,而不是停止,可以使用快捷鍵 ctrl p+q 退出,此時容器的狀態為Up

使用exit,然后使用

查看正在運行的容器:docker ps

tongkun@localhost java (master) $ docker run -it centos bash 
[root@c06a8694d372 /]# 
[root@c06a8694d372 /]# exit
exit
tongkun@localhost java (master) $ docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
bd7181bd39ff        centos              "bash"              3 minutes ago       Up 3 minutes                            priceless_goldwasser

可以看到,當前有一個id為bd7181bd39ff的容器,image為centos,就是剛剛啟動的,如果通過exit退出容器,這里就不會顯示了。

啟動、停止、重啟容器
tongkun@localhost java (master) $ docker stop bd7181bd39ff
bd7181bd39ff
tongkun@localhost java (master) $ docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
tongkun@localhost java (master) $ docker start bd7181bd39ff
bd7181bd39ff
tongkun@localhost java (master) $ docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
bd7181bd39ff        centos              "bash"              6 minutes ago       Up 1 second                             priceless_goldwasser
tongkun@localhost java (master) $ docker restart bd7181bd39ff
bd7181bd39ff
tongkun@localhost java (master) $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
bd7181bd39ff        centos              "bash"              6 minutes ago       Up 4 seconds                            priceless_goldwasser
進入容器attach
tongkun@localhost java (master) $ docker attach bd7181bd39ff
[root@bd7181bd39ff /]# 
安裝軟件、保存環境

安裝vim

[root@bd7181bd39ff /]# yum install vim 
.....
[root@bd7181bd39ff /]# vi  
vi        view      vigr      vim       vimdiff   vimtutor  vipw 

保存容器,先退出容器,然后commit

tongkun@localhost java (master) $ docker commit -m '安裝vim' -a 'tongkun' bd7181bd39ff tongkun/centos:vim
sha256:1dab79502fbda22037e865b81882e073575af4e8a0bd8a0de16989b0ed244e2d

-m指定說明信息;-a指定用戶信息;bd7181bd39ff代表容器的id;tongkun/centos:vim指定目標鏡像的用戶名、倉庫名和 tag 信息

查看鏡像庫,就已經有剛提交的鏡像了

tongkun@localhost java (master) $ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
tongkun/centos      vim                 1dab79502fbd        About a minute ago   327MB
centos              latest              1e1148e4cc2c        9 days ago           202MB

退出現有鏡像,啟動剛剛commit的鏡像,查看安裝的vim是否存在

tongkun@localhost java (master) $ docker stop bd7181bd39ff
bd7181bd39ff
tongkun@localhost java (master) $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
tongkun@localhost java (master) $ docker run -it tongkun/centos bash 
Unable to find image 'tongkun/centos:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: Service Unavailable.
See 'docker run --help'.
tongkun@localhost java (master) $ docker run -it tongkun/centos:vim  bash 
[root@a7880e04c1d4 /]# vi 
vi        view      vigr      vim       vimdiff   vimtutor  vipw  

可以看到,這是我們剛剛commit的鏡像,有vim命令工具

刪除容器或鏡像

如果想刪除容器或者鏡像,可以使用rm命令,注意:刪除鏡像前必須先刪除以此鏡像為基礎的容器(哪怕是已經停止的容器),否則無法刪除該鏡像,會報錯Failed to remove image (e4415b714b62): Error response from daemon: conflict: unable to delete e4415b714b62 (cannot be forced) - image has dependent child images類似這種。

tongkun@localhost java (master) $ docker ps
CONTAINER ID        IMAGE                COMMAND             CREATED             STATUS              PORTS               NAMES
a7880e04c1d4        tongkun/centos:vim   "bash"              5 minutes ago       Up 5 minutes                            blissful_volhard
tongkun@localhost java (master) $ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tongkun/centos      vim                 1dab79502fbd        10 minutes ago      327MB
centos              latest              1e1148e4cc2c        9 days ago          202MB
tongkun@localhost java (master) $ docker rmi 1dab79502fbd
Error response from daemon: conflict: unable to delete 1dab79502fbd (cannot be forced) - image is being used by running container a7880e04c1d4

刪除鏡像 docker rmi 容器id, 因為此鏡像有容器在使用,所以不能被刪除,需要先刪除容器,刪除容器命令docker rm 鏡像id,刪除之前需要先stop容器,否則也會報錯,如下:**Error response from daemon: You cannot remove a running container a7880e04c1d42f6d1f672ac920dd33df552a409cc19029314672643ee18e5836. Stop the container before **

tongkun@localhost java (master) $ docker rm a7880e04c1d4
Error response from daemon: You cannot remove a running container a7880e04c1d42f6d1f672ac920dd33df552a409cc19029314672643ee18e5836. Stop the container before attempting removal or force remove
tongkun@localhost java (master) $ docker stop a7880e04c1d4
a7880e04c1d4
tongkun@localhost java (master) $ docker rm a7880e04c1d4
a7880e04c1d4
tongkun@localhost java (master) $ docker rmi 1dab79502fbd
Untagged: tongkun/centos:vim
Deleted: sha256:1dab79502fbda22037e865b81882e073575af4e8a0bd8a0de16989b0ed244e2d
Deleted: sha256:f6def596fa2f515b28700f4cd3241e0ea78743abe6dad6d2f65bbf945f6dbf15

Docker push

正所謂“一次提交,到處使用”,我們可以把配置好的Docker push到倉庫中,比如 docker hub

先把剛刪除的鏡像重新弄回來一遍。。。。。

首先到https://hub.docker.com/注冊個賬號,然后登陸

tongkun@localhost java (master) $ docker login 
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: tongkun
Password: 
Login Succeeded

push鏡像:

tongkun@localhost java (master) $ docker push tongkun/centos:vim
The push refers to repository [docker.io/tongkun/centos]
15f896816a9b: Pushed 
071d8bd76517: Mounted from library/centos 
vim: digest: sha256:41bdaf55a709080577ccb40f61c0f91275e4a1cb62827a3893b6a5269a619d67 size: 741

push成功之后,到docker hub的倉庫中,我們就可以看到自己push上去的鏡像了,跟github類似,如圖:

屏幕快照 2018-12-16 上午12.35.14
pull鏡像

當我們在其他地方也需要使用此鏡像是,只需要配置好docker,并登陸docker就可以pull已有的鏡像了,為了模擬我們先把本地鏡像和容器刪掉,從倉庫中拉取

tongkun@localhost java (master) $ docker stop 133b1f45876f
133b1f45876f
tongkun@localhost java (master) $ docker rm 133b1f45876f
133b1f45876f
tongkun@localhost java (master) $ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
tongkun@localhost java (master) $ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tongkun/centos      vim                 78c5c9cce361        8 minutes ago       327MB
centos              latest              1e1148e4cc2c        9 days ago          202MB
#刪除鏡像
tongkun@localhost java (master) $ docker rmi 78c5c9cce361
Untagged: tongkun/centos:vim
Untagged: tongkun/centos@sha256:41bdaf55a709080577ccb40f61c0f91275e4a1cb62827a3893b6a5269a619d67
Deleted: sha256:78c5c9cce361122999251ef6ed00d286e4a1af70124a53583e46dbaeb3517879
Deleted: sha256:4b40340dc18b3ef39430f7892e0021af55dcae7f5d76e3b73e0087392f6ca353
tongkun@localhost java (master) $ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              1e1148e4cc2c        9 days ago          202MB
#從倉庫中拉取鏡像
tongkun@localhost java (master) $ docker pull tongkun/centos:vim 
vim: Pulling from tongkun/centos
a02a4930cb5d: Already exists 
260974091ff8: Pull complete 
Digest: sha256:d57b9eb7123569c3b49279e8211d145b1070656be8aede5f97a0d025fc6ec6ee
Status: Downloaded newer image for tongkun/centos:vim
tongkun@localhost java (master) $ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tongkun/centos      vim                 defbd9f314c9        11 minutes ago      327MB
centos              latest              1e1148e4cc2c        9 days ago          202MB
tongkun@localhost java (master) $ docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
#啟動鏡像
tongkun@localhost java (master) $ docker run -it tongkun/centos:vim bash 
[root@c42f9f275474 /]# tongkun@localhost java (master) $ 
tongkun@localhost java (master) $ docker ps 
CONTAINER ID        IMAGE                COMMAND             CREATED             STATUS              PORTS               NAMES
c42f9f275474        tongkun/centos:vim   "bash"              11 seconds ago      Up 10 seconds                           frosty_williams
最后來張docker命令圖收尾
20171005132826220

Mac入門就到這里了,深層次的使用和控制,后面學習再補充~

參考:http://lihuia.com/2018/03/09/docker/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,179評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,444評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,948評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,185評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,717評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,794評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,414評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,750評論 2 370

推薦閱讀更多精彩內容