天天看點

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

本次主要是詳細記錄docker1.12在ubuntu16.04上的安裝過程,建立docker組(避免每次敲指令都需要sudo),docker常用的基本指令的總結,在容器中運作hello world,以及建立一個基于python flask的web應用容器的全過程。

增加ca證書

添加gpg key(一種加密手段)

建立docker.list檔案

再次更新源

以防萬一,清除過時的源

驗證下apt是從正确的庫源下載下傳應用的

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

至此,可見已經配置好了docker的源

for ubuntu trusty, wily, and xenial, it’s recommended to install the linux-image-extra kernel package. the linux-image-extra package allows you use the aufs storage driver可以實作容器間可執行檔案和運作庫的共享。

安裝 linux-image-extra

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

更新源

通過apt指令線上安裝docker

開啟docker的守護程序(docker服務開啟)

國際慣例,用一個hello world的來測試安裝成功

本地本來沒有hello world鏡像,通過docker源擷取到,并成功現實hello world。

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

檢視正在運作的容器

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

如第一步最後“檢視正在運作的容器”如果沒有sudo,不以root身份權限運作檢視容器指令則會報錯cannot connect to the docker daemon. is the docker daemon running on this host?如圖

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

原因:

the docker daemon binds to a unix socket instead of a tcp port. by default that unix socket is owned by the user root and other users can access it with sudo. for this reason, docker daemon always runs as the root user.

to avoid having to use sudo when you use the docker command, create a unix group called docker and add users to it. when the docker daemon starts, it makes the ownership of the unix socket read/writable by the docker group.

建立使用者組docker,可以避免使用sudo

将docker和wxl(王小雷使用者名,在建立主機時預設使用者名稱是ubuntu)添加到一個組内

注意需要重新啟動計算機或者登出使用者再登入,才能生效。這樣就不需要使用sudo指令了。

那麼,如何将wxl從docker使用者組移除?

sudo gpasswd -d wxl docker

如何删除剛才建立的docker使用者組?

sudo groupdel docker

如何建立和删除新使用者,如使用者newuser

sudo adduser newuser

sudo userdel newuser

docker run ubuntu /bin/echo “hello world” -運作ubuntu鏡像并且在指令視窗輸出”hello world”

docker run -t -i ubuntu /bin/bash -進入ubuntu這個鏡像的bash指令視窗,可以操作本鏡像ubuntu的指令如ls

docker ps - 列出目前運作的容器

docker logs - 展示容器的标準的輸出(比如hello world)

docker stop - 停止正在運作的容器

docker version -可以檢視守護的程序,docker版本以及go版本(docker本身是用go語言寫的)

總結,可以看出docker的指令一般為

[sudo] docker [subcommand] [flags] [arguments]

如docker run -i -t ubuntu /bin/bash

運作python flask應用(這個過程可能很慢,根據網速而定,因為如果本地沒有鏡像training/webapp:latest會自動線上擷取)

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

完成

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

檢視運作中打容器通過 docker ps -l

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

我的是(把terminal最大化容易識别)

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

指定端口号,通過docker -p,如将32769更改為5000

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask
Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

根據container id 或者 names 來使用log和top指令,如我執行時産生的container id是83442361e61b,而names是reverent_saha

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask
Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask

開啟/删除/目前的web應用容器

關閉web應用容器,通過docker ps -l 檢視容器開啟狀态

Ubuntu16.04安裝Docker1.12+開發執行個體+hello world+web應用容器1.Docker1.12在Ubuntu16.04上安裝1.3.安裝Docker(如果先決條件1,2步正确完成了)1.4.建立Docker使用者組,避免使用sudo1.5.如何更新Docker1.6.如何解除安裝Docker2.運作一個web應用–Python Flask