前端开发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 中文指南

 

posted on 2020-04-06 21:17  稻草人.Net  阅读(881)  评论(0编辑  收藏  举报