docker經常使用命令

Docker
教程 https://docs.docker.comnode

設置Docker環境
構建映像並將其做爲一個容器運行
擴展您的應用程序以運行多個容器
在羣集中分發您的應用
經過添加後端數據庫來堆棧服務
將您的應用部署到生產環境
Docker簡介:python

docker是開發人員和系統管理員 使用容器開發,部署和運行應用程序的平臺。輕量級(較VM而言)linux

應用程序沒有系統依賴性
能夠將更新推送到分佈式應用程序的任何部分
資源密度能夠優化
與虛擬機的區別:nginx

虛擬機是一個系統,容器是一個進程。git

1、Docker安裝部署

1.1 安裝環境
系統環境:CentOS 7.3.1611docker

1.2 安裝方式
① yum安裝 ②離線安裝數據庫

1.2.1 yum安裝過程npm

 

1.2.1.1 安裝依賴ubuntu

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2後端

1.2.1.2 配置yum國內源

$ sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.2.1.3 安裝

安裝docker-ce

$ sudo yum makecache fast

$ sudo yum install docker-ce

查看docker-ce列表,以便安裝指定版本

$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64 17.12.ce-1.el7.centos docker-ce-stable

 

yum install -y docker-ce-18.03.0.ce

 

1.2.2 離線安裝

1.2.2.1 下載安裝包

curl https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

1.2.2.2 刪除docker-ce

yum remove docker-ce

1.2.2.3 刪除docker存儲

rm -rf /var/lib/docker

1.3 啓動Docker服務
systemctl enable docker

systemctl start docker

查看服務是否啓動正常

systemctl status docker(結果以下證實正確)

1.4 測試Docker安裝
1.4.1 測試版本

docker --version

1.4.2測試安裝

1.經過運行簡單的Docker鏡像hello-world來測試您的安裝是否有效

docker image pull library/hello-world(library/hello-world是 image 文件在倉庫裏面的位置,其中library是 image 文件所在的組。因爲 Docker 官方提供的 image 文件,都放在library組裏面,因此它的是默認組,能夠省略)pull以後在本機就能夠看到這個image文件了。(docker images ls)

docker run hello-world (run會自動提取,因此上一步pull能夠省略)

2.列出hello-world下載到您的計算機的圖像

docker image ls

3.hello-world運行後,容器自動終止。下述能夠執行過的容器

docker container ls -a

4.有些容器不會自動中止,需用下法手動中止。

docker container kill [containID]

1.5 docker命令
docker命令彙總:

docker run ubuntu echo hello docker 這裏ubuntu是一個image,若是本地沒有這個image會從

Registry去下載。

docker images 當前本地有的image鏡像

docker ps 當前運行的docker的container(容器)這裏的CONTAINER ID是docker容器的id

docker stop CONTAINER ID 中止當前container

注:docker在容器內作的操做都是暫時的,爲持久化保存,進行 下列設置,實質上是產生了一個新的Image

docker commit -m 'fun' CONTAINER ID nginx-fun ( -m 'fun'是container的message,nginx-fun 是新的image的名稱)

docker rmi IMAGE ID 刪除image

容器也能夠刪除

docker ps -a 全部的container(中止了也顯示)

docker rm CONTAINER ID 刪除容器

 

 2、容器——使用Docker方式構建應用程序

 

在過去,若是您要開始編寫Python應用程序,那麼您的第一個業務是在您的計算機上安裝Python運行時。使用Docker,您能夠將可移植的Python運行時做爲映像獲取,無需安裝。

Docker拖取鏡像,鏡像運行狀態——>容器。

2.1 建立Dockerfile(例子1)
#使用一個官方的Python運行時做爲父映像

FROM python:2.7-slim

將工做目錄設置爲/app

WORKDIR /app

#將當前目錄內容複製到/app的容器中。

ADD . /app

#安裝requirements.txt中指定的任何須要的軟件包

RUN pip install --trusted-host pypi.python.org -r requirements.txt

#使端口80能夠在這個容器以外的世界上使用。

EXPOSE 80

#定義環境變量

ENV NAME World

當容器啓動時運行app.py

CMD ["python", "app.py"]

Volume:提供獨立於容器以外的持久化存儲

2.2 建立Dockerfile(例子2)
首先,在項目的根目錄下,新建一個文本文件.dockerignore,寫入下面的內容。

.gitnode_modules npm -debug.log

上面代碼表示,這三個路徑要排除,不要打包進入 image 文件。若是你沒有路徑要排除,這個文件能夠不新建。

而後,在項目的根目錄下,新建一個文本文件 Dockerfile,寫入下面的內容。

FROM node:8.4

COPY ./app

WORKDIR /app

RUN npm install--registry=https://registry.npm.taobao.org

EXPOSE 3000

上面代碼一共五行,含義以下。

FROM node:8.4:該 image 文件繼承官方的 node image,冒號表示標籤,這裏標籤是8.4,即8.4版本的 node。

COPY . /app:將當前目錄下的全部文件(除了.dockerignore排除的路徑),都拷貝進入 image 文件的/app目錄。

WORKDIR /app:指定接下來的工做路徑爲/app。

RUN npm install:在/app目錄下,運行npm install命令安裝依賴。注意,安裝後全部的依賴,都將打包進入 image 文件。

EXPOSE 3000:將容器 3000 端口暴露出來, 容許外部鏈接這個端口。

3、Registry


$docker search whalesay

$docker pull whalesay

$docker push myname/whalesay

 Docker常見命令


容器相關操做
docker create # 建立一個容器可是不啓動它
docker run # 建立並啓動一個容器
docker stop # 中止容器運行,發送信號SIGTERM
docker start # 啓動一箇中止狀態的容器
docker restart # 重啓一個容器
docker rm # 刪除一個容器
docker kill # 發送信號給容器,默認SIGKILL
docker attach # 鏈接(進入)到一個正在運行的容器
docker wait # 阻塞到一個容器,直到容器中止運行
獲取容器相關信息
docker ps # 顯示狀態爲運行(Up)的容器
docker ps -a # 顯示全部容器,包括運行中(Up)的和退出的(Exited)
docker inspect # 深刻容器內部獲取容器全部信息
docker logs # 查看容器的日誌(stdout/stderr)
docker events # 獲得docker服務器的實時的事件
docker port # 顯示容器的端口映射
docker top # 顯示容器的進程信息
docker diff # 顯示容器文件系統的先後變化
導出容器
docker cp # 從容器裏向外拷貝文件或目錄
docker export # 將容器整個文件系統導出爲一個tar包,不帶layers、tag等信息
執行
docker exec # 在容器裏執行一個命令,能夠執行bash進入交互式
鏡像操做
docker images # 顯示本地全部的鏡像列表
docker import # 從一個tar包建立一個鏡像,每每和export結合使用
docker build -t hello_docker . # 使用Dockerfile建立鏡像(推薦)
docker commit # 從容器建立鏡像
docker rmi # 刪除一個鏡像
docker load # 從一個tar包建立一個鏡像,和save配合使用
docker save # 將一個鏡像保存爲一個tar包,帶layers和tag信息
docker history # 顯示生成一個鏡像的歷史命令
docker tag # 爲鏡像起一個別名
鏡像倉庫(registry)操做
docker login # 登陸到一個registry
docker search # 從registry倉庫搜索鏡像
docker pull # 從倉庫下載鏡像到本地
docker push # 將一個鏡像push到registry倉庫中

相關文章
相關標籤/搜索