前端開發Docker快速入門(一)


先梳理下前端的幾個應用場景

1、為團隊制定統一開發環境,新人入職或系統重裝后能快速搭建起開發環境。

比如前端開發通常要安裝pythone、nodejs以及node-sass、webpack等,能通過Dockerfile維護管理鏡像給到團隊成員使用。

研究深度學習領域的同學比較清楚,搭建環境需要安裝配置各類工具,如Tensorflow、Keras、Anaconda、PyTorch、Flask、Jupyter,可以利用Docker快速搭建、管理和部署。

2、實驗性項目或者技術研究時需要安裝各種依賴和工具,公司內部電腦標裝后權限較低無法安裝和下載。

3、前后端項目大復雜時,項目依賴nodejs模塊較多且對平台依賴較強時,比如sharp.js、node-sass等需要編譯安裝,同時還需要使用mysql、redis等在開發部署時都較麻煩。

在開發時要啟動多個服務及端口,可使用docker-compose編排好服務就能一鍵啟動。如有新人加入直接使用相應的鏡像就能快速進行開發,使用Docker將非常方便。

 

一、MacOS Docker 安裝

1、使用 Homebrew 來安裝 Docker

$ brew cask install docker

2、手動下載 Docker for Mac.dmg安裝

如同 macOS 其它軟件一樣,安裝也非常簡單,雙擊下載的 .dmg 文件,然后將鯨魚圖標拖拽到 Application 文件夾即可。

下載地址: https://download.docker.com/mac/stable/Docker.dmg

二進制包  

https://mirrors.aliyun.com/docker-ce/mac/static/stable/x86_64/

https://download.docker.com/mac/static/stable/x86_64/

解壓后

ln -s /otp/docker19.0/docker /usr/local/bin/docker  # 全局運行docker

$ sudo docker -d &   # 啟動docker

$ killall docker   # 關閉docker

 

3、安裝完成后,運行下面的命令,驗證是否安裝成功

$ docker version
# 或者
$ docker info

Mac命令行啟動docker服務
launchctl 查看 docker server
launchctl list | grep docker
關閉和啟動它
launchctl stop com.docker.docker.15648 && launchctl start com.docker.docker.15648

 

二、Mac下的配置修改
vi ~/.docker/daemon.json
{

"debug": true,
"experimental": true,
"registry-mirrors": ["https://u6krpdpq.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com"],
"insecure-registries": ["192.168.1.2:5000"]
}

 

三、常用命令

1、查詢本地容器和鏡像

docker ps -a    # 顯示所有的容器
docker image ls    # 列出本地鏡像

docker search alplin  # 搜索alplin相關鏡像

 

2、獲取鏡像

docker pull [imagename]:[tag]    # 拉取鏡像

docker pull alpine:latest

docker pull centos:centos7.7.1908

docker pull hub.c.163.com/library/alpine:latest  # 從國內163源站拉取鏡像

 

3、創建容器

docker create --name  alpine:latest 

docker run --name centos7 -itd centos:centos7.7.1908 /bin/bash  # 創建並運行容器

docker run --name myalpine -itd alpine:latest /bin/sh

docker run --name centos72 -itd -v `pwd`:/bankapp/app -w /bankapp/app -p 8000:8000 --privileged=true centos7:nodejs10 /bin/bash

 

4、創建容器
docker create --name alpine:latest

5、刪除容器
docker rm containerID

docker image rm IMAGEID  # 刪除本地鏡像

6、啟動容器
docker start containerID

7、進入容器
docker attach containerID

8、停止容器運行
docker stop  containerID

9、從現有容器導出導入新的鏡像
docker commit -a "webplus" -m "centos7 nodejs_10.18.0 " containerID centos:centos7_node10       # 提交容器的修改
docker export -o centos7_node10_`date +%Y%m%d`.tar containerID               # 導出新的鏡像.tar
docker import ./centos_nodejs-20200402.tar centos:centos7_nodejs               # 導入存檔鏡像

10、從現在鏡像保存和導入鏡像

docker save -o my_ubuntu_v3.tar centos:centos7_nodejs  # 將指定鏡像保存成 tar 歸檔文件可進行分發

docker load -ip my_ubuntu_v3.tar   # 導入使用 docker save 命令導出的鏡像

 

四、本地搭建私庫

1、拉取registry鏡像

docker pull registry

2.創建宿主機儲存目錄【/opt/data/registry】:

mkdir -p /opt/data/registry

docker create -d -p 5000:5000 -v /opt/data/registry:/tmp/registry --privileged=true --restart=always --name registry

 

3、也可直接拉取鏡像並新建容器, -p端口映射,-v本地庫目錄映射
docker run -d -p 5000:5000 -v /Users/apple/aaa/docker:/tmp/registry registry
docker run -d -p 5000:5000 -v /Users/apple/aaa/docker/registry:/tmp/registry --privileged=true --restart=always --name hub.c.163.com/library/registry:latest registry:latest

 

4、配置https權限支持,修改完需要重啟,有時候可能重啟失敗,可能是因docker檢查192.168.1.128:5000是否能訪問:

Mac vi ~/.docker/daemon.json

{

"insecure-registries":["192.168.1.128:5000"]

}

 

5、push到私有倉庫 

docker tag centos:centos7_nodejs 192.168.1.128:5000/centos7_nodejs:v1   # 修改鏡像的tag

docker push 192.168.1.128:5000/nodejs10:1.0.0  # 推送鏡像到本地倉庫

 

參考文檔:

阮一峰Docker 入門教程 

Docker 中文指南

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM