Skip to content

前端开发Docker快速入门(一) #50

Description

@webplus

先梳理下前端的几个应用场景

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 中文指南

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions