1. 程式人生 > >docker的安裝及使用

docker的安裝及使用

docker

一個虛擬化的技術,可以幫我們打包我們的環境, 快速的部署到其他機器上, 類似於一個虛擬機器, 但是docker消耗的資源比較少

Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從Apache2.0協議開源。

Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。

容器是完全使用沙箱機制,相互之間不會有任何介面(類似 iPhone 的 app),更重要的是容器效能開銷極低。

沙箱機制就相當於一個輪船運載的集裝箱, 並不關心內部是怎麼樣的, 只關心把這個箱子打包好, 完成運輸

docker 安裝

ubuntu 16.04 安裝最新的 docker

docker有兩個版本, 一個是docker-ce(社群版), 一個是docker-ee(企業版)

docker-compse:可執行和管理多個docker容器。

docker-machine:docker官方提供的docker管理工具。可管理多個docker主機,可搭建swarm叢集。

1.解除安裝舊版本的docker

全新安裝時,無需執行該步驟

$ sudo apt-get remove docker docker-engine docker.io

2.更新系統軟體

$ sudo apt-get update

3.安裝依賴包

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

4.安裝官方金鑰

執行該命令時,如遇到長時間沒有響應說明網路連線不到docker網站,需要使用代理進行。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

顯示OK,就代表新增成功.

5.新增倉庫

$ sudo
add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"

6.再次更新軟體

$ sudo apt-get update

7.安裝docker

如果想指定安裝某一版本,可使用 sudo apt-get install docker-ce=<VERSION>  命令,把<VERSION>替換為具體版本即可。

預設是安裝最新版本

$ sudo apt-get install docker-ce

8.檢視docker的版本

$ docker -v

顯示“Docker version 17.09.0-ce, build afdb6d4”字樣,表示安裝成功。

docker的基本操作

docker images  檢視本地的映象
docker search 映象名  搜尋網上的相關映象
docker pull 映象名  拉取你要的映象
docker rmi 映象名  刪除映象
docker save 映象名|gzip>>儲存的檔名.tar.gz
docker load 儲存的檔名.tar.gz

docker run -it 映象名 進入時使用的shell方式 bash sh
		--name 名字  可以給我們的容器起一個名字

docker ps 檢視正在執行的容器
			-a 能顯示那些已經關掉的容器
docker rm 容器id或者容器名字
docker exec -it 容器的名字 bash  進入到一個正在啟動的容器
exit 可以退出當前的容器

網路對映

docker run -d -p 主機埠:容器埠 容器名 命令(比如nginx)

資料卷

-v 宿主機目錄:容器目錄

資料卷容器

--volumes-from + 容器名

容器互聯

先啟動一個容器 docker run -d --name web1 -p 80:80 mynginx ningx
在啟動一個容器: docker run -d --name web2 --link web1 -p 8080:80 mynginx ningx

Dockerfile

FROM ubuntu

MAINTAINER louyifei [email protected]163.com

RUN apt-get update
RUN apt-get install nginx -y


RUN echo "daemon off;">>/etc/nginx/nginx.conf
#設定開放埠
EXPOSE 80

# 預設在容器啟動的時候執行的命令
CMD ["nginx"]

sudo docker build -t tag ./

常見命令

FROM: 目地:指定基礎的image,表示新程式基於哪個image構建新image 語法: FROM <image>:<tag>tag:版本號,如果沒有,則使用最新版本
MAINTAINER 指定映象建立者資訊
語法:MAINTAINER <name>
RUN

RUN可以執行任何被基礎image支援的命令

語法:

.

CMD

容器啟動時執行的操作。該指令只能在檔案中存在一次,如果有多個,則只執行最後一條

USER 設定啟動容器的使用者,預設是root使用者。指定 memcached 的執行使用者daemon

ENTRYPOINT 設定容器啟動時執行的操作。該指令只能在檔案中存在一次,如果有多個,則只執行最後一條

EXPOSE 指定容器需要對映到宿主機器的埠
ENV 在image中設定一個環境變數。



ADD 從src複製檔案到容器的的dest路徑
VOLUME 指定掛載點.

WORKDIR 切換目錄。可以多次切換工作目錄(相當於cd命令)

上傳自己的映象到倉庫

1 docker login 可以加你的docker網址 預設是https://hub.docker.com

2 給你的映象打標籤 docker tag 映象名/id 使用者名稱/存到遠端叫什麼:tag標籤

3 docker push 第2步 映象名/id後邊跟的 名字

sudo docker login
sudo docker images
sudo docker tag 77b3321ee9b8 louyifei8888/project
sudo docker push louyifei8888/project