1. 程式人生 > >docker的使用和基本命令

docker的使用和基本命令

1.對docker的理解

  1. docker是世界領先的軟體容器平臺。
  2. docker技術屬於作業系統層面的虛擬化技術。
  3. 容器還可以進行版本管理、複製、分享、修改,就像管理普通的程式碼一樣。

2.為什麼要用docker

  • 一致的執行環境:docker的映象提供了除核心外完整的執行時環境,確保了應用執行環境一致性,即保證了開發、測試、生產環境的一致性。
  • 遷移方便:可以很輕易的將在一個平臺上執行的應用,遷移到另一個平臺上。
  • 持續交付和部署:使用Docker可以通過定製應用映象來實現持續整合、持續交付、部署。
  • 隔離啊、快速啟動等…

3.docker常用命令整理

3.1 docker的啟動、停止、重啟

service docker start // 啟動
service docker stop // 停止
service docker restart // 重啟

3.2 docker對映象的操作

  • docker rmi 映象名:TAG // 刪除映象名,若有此映象建立的容器則應先刪除容器,才能刪除映象
  • docker images [映象名] // 不帶映象名則查詢所有映象
  • docker pull ubuntu:18.04 // 獲取ubuntu18.04版本的映象
  • docker search ubuntu
    // 搜尋ubuntu映象 NAME:映象倉庫源的名稱,DESCRIPTION:映象的描述,OFFICIAL:是否docker官方釋出

3.3 docker 對容器的操作

  • docker rm 容器名/容器ID // 刪除容器時,容器必須是停止狀態
  • docker ps // 檢視所有正在執行的容器
  • docker ps -a // 檢視所有的容器
  • docker logs -f 容器 ID // 檢視容器的標準輸出
  • docker exec -it mysql bash // 進入執行的mysql容器
  • docker start 容器名/容器ID // 啟動容器(容器名或者ID都行)
  • docker stop 容器名/容器ID // 停止容器
  • docker restart 容器名/容器ID // 重啟正在執行的容器
  • docker pull ubuntu:18.04 // 獲取ubuntu18.04版本的映象
  • docker search ubuntu // 搜尋ubuntu映象 NAME:映象倉庫源的名稱,DESCRIPTION:映象的描述,OFFICIAL:是否docker官方釋出

4 建立映象

當我們從docker映象倉庫中下載的映象不能滿足我們的需求時,我們可以通過以下兩種方式對映象進行更改。

  1. 從已經建立的容器中更新映象,並且提交這個映象
  2. 使用 Dockerfile 指令來建立一個新的映象

4.1 更新映象

更新映象前,需要先使用映象建立一個容器
[email protected]:~$ docker run -t -i ubuntu:15.10 /bin/bash
[[email protected] /]#
按照需要對容器更改後,輸入exit 退出容器,然後通過docker commit提交容器副本,以此來儲存。
[email protected]:~$ docker commit -m=“has update” -a=“lirong” f52630641520 lr/ubuntu:v2
sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8

-m:更新說明,-a:作者資訊, f52630641520 :容器ID

4.2 Dockerfile構建新映象

# Docker image for build file run
# VERSION 0.0.1
# Author: Janche
# 基礎映象使用java
FROM java:8
# 作者
MAINTAINER Janche <[email protected]>
# VOLUME 指定了臨時檔案目錄為/tmp。
# 其效果是在主機 /var/lib/docker 目錄下建立了一個臨時檔案,並連結到容器的/tmp
VOLUME /tmp 
# 將jar包新增到容器中並更名為app.jar
ADD demo.jar app.jar 
# 執行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
# 指定容器需要對映到主機的埠
EXPOSE 8080

最後在Dockerfile檔案所在目錄下執行構建命令:

docker image build -t 映象名 . // 映象名自己起,注意最後有一個點

5. 建立容器

5.1簡單命令:

docker run -i -t ubuntu:15.10 /bin/bash

-t:在新容器內指定一個偽終端或終端。
-i:允許你對容器內的標準輸入 (STDIN) 進行互動。

5.2部署專案時常用的命令

docker container run --rm -d -p 8081:8080 --name demo --link mysql:db demo-web

-d: 在後臺執行。
-p: 主機埠對映到容器埠。
--rm: 容器停止後刪除此容器。
--name: 為容器起的別名。
--link: 連線其他的容器服務,db是為mysql容器起的別名,若是mysql服務的話,此別名一定得和程式碼中的資料庫IP一致,即將jdbc:mysql://localhost:3306/data改為jdbc:mysql://db:3306/data

參考:docker菜鳥教程docker究竟有什麼優勢