docker的基本使用筆記

docker是一種用於解決跨平臺、跨環境下編程、測試和部署兼容性問題的強有力工具,其中涉及的操作對象主要包括:

  • 倉庫(Repository):用於存放鏡像的地方,包括官方倉庫,各鏡像源倉庫和自己建立的私有倉庫。
  • 鏡像(Image):一堆只讀層(read-only layer)的統一視角,在使用層面上可理解爲將編譯環境、程序和數據封裝好的對象。
  • 容器(Container):在使用層面,可以理解爲鏡像的實例化。

1. 鏡像操作

  • 查看當前本地所有鏡像
docker images
  • 查找遠程倉庫某個鏡像(以mysql爲例)
docker serach mysql
  • 拉取指定版本鏡像到本地(以mysql 5.6爲例)
docker pull mysql:5.6
  • 刪除鏡像
docker rmi mysql:5.6

2. 容器操作

容器的狀態包括:已創建(created)、重啓中(restarting)、運行中( running)、遷移中(removing)、暫停(paused)、停止(exited )、 死亡(dead)

  • 查看容器
docker ps    # 查看正在運行的容器
docker ps -l   # 最近一次創建的容器
docker ps -a   # 所有容器(包括停止的)
  • 創建容器
# -p映射端口,  -v 存儲卷掛載
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d 
-v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=123456-d mysql:5.6
  • 啓動容器
docker start -i mysql    # 以交互式環境進入容器,注意退出容器後容器停止

docker start -id mysql    # 以交互式環境進入守護容器,退出容器後容器扔運行

docker restart mysql   # 重啓容器
  • 進入容器
docker attach mysql   # 從後臺方式進入終端交互方式,注意進入終端後如果exit,則會停止容器

# 更推薦使用
docker exec -itd mysql /bin/bash   # 從後臺方式進入終端交互方式,以這種方式進入的話若exit,不會停止容器
  • 導出容器快照
docker export mysql > mysql.tar   # 導出容器快照到本地文件
  • 刪除容器
docker rm -f mysql
  • 查看容器端口
docker port msyql
  • 查看容器的配置和狀態
docker inspect mysql
  • 容器內文件和本地文件的拷貝
# 1. 從容器內拷貝到宿主機
docker cp container_ID: /path/1.txt   /desktop

# 2. 從宿主機拷貝到docker
docker cp /desktop/1.txt container_ID: /path  
  • 更新容器並生成新的鏡像
# step1:  更新容器,如安裝新的庫或者添加文件

# setp2: 提交新鏡像,-m爲備註message,-a爲作者,container_ID爲容器ID,mysql:v2爲鏡像名
docker commit -m="update" -a="guofei_fly" container_ID mysql:v2

# step3: 鏡像打標籤
docker tag image_ID tag_name  # xxx爲鏡像ID

3. 製作鏡像

製作鏡像需要製作Dockerfile文件,文件內容基本格式爲:

# Base Images
## 從基礎鏡像構建
FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python3.6

## 把當前文件夾裏的文件構建到鏡像的根目錄下
ADD . /

## 指定默認工作目錄爲根目錄
WORKDIR /

## 建立基礎鏡像後安裝操作
RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
RUN pip config set install.trusted-host mirrors.aliyun.com
RUN pip install -r  requirements.txt

## 鏡像啓動後統一執行 sh run.sh, 需在根目錄下配置相關文件
CMD ["sh", "run.sh"]

在Dockerfile所在路徑下,通過如下命令即可製作鏡像:

# 注意最後的.不可省略,表示當前路徑
docker build -t image_test:v1.0 .
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章