林城愚人 發表於 2020-4-6 21:17:00

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

<p>先梳理下前端的几个应用场景</p>
<p>1、为团队制定统一开发环境,新人入职或系统重装后能快速搭建起开发环境。</p>
<p>比如前端开发通常要安装pythone、nodejs以及node-sass、webpack等,能通过Dockerfile维护管理镜像给到团队成员使用。</p>
<p>研究深度学习领域的同学比较清楚,搭建环境需要安装配置各类工具,如Tensorflow、Keras、Anaconda、PyTorch、Flask、Jupyter,可以利用Docker快速搭建、管理和部署。</p>
<p>2、实验性项目或者技术研究时需要安装各种依赖和工具,公司内部电脑标装后权限较低无法安装和下载。</p>
<p>3、前后端项目大复杂时,项目依赖nodejs模块较多且对平台依赖较强时,比如sharp.js、node-sass等需要编译安装,同时还需要使用mysql、redis等在开发部署时都较麻烦。</p>
<p>在开发时要启动多个服务及端口,可使用docker-compose编排好服务就能一键启动。如有新人加入直接使用相应的镜像就能快速进行开发,使用Docker将非常方便。</p>
<p>&nbsp;</p>
<p>一、MacOS Docker 安装</p>
<p>1、使用 Homebrew 来安装 Docker</p>
<p>$ brew cask install docker</p>
<p>2、手动下载&nbsp;Docker for Mac.dmg安装</p>
<p>如同 macOS 其它软件一样,安装也非常简单,双击下载的 .dmg 文件,然后将鲸鱼图标拖拽到 Application 文件夹即可。</p>
<p>下载地址:&nbsp;https://download.docker.com/mac/stable/Docker.dmg</p>
<p>二进制包&nbsp;&nbsp;</p>
<p>https://mirrors.aliyun.com/docker-ce/mac/static/stable/x86_64/</p>
<p>https://download.docker.com/mac/static/stable/x86_64/</p>
<p>解压后</p>
<p>ln -s /otp/docker19.0/docker /usr/local/bin/docker&nbsp; # 全局运行docker</p>
<p><code>$ sudo docker -d &amp;&nbsp; &nbsp;# 启动docker</code></p>
<p><code></code><code>$ killall docker&nbsp; &nbsp;# 关闭docker</code></p>
<p>&nbsp;</p>
<p>3、安装完成后,运行下面的命令,验证是否安装成功</p>
<p>$ docker version<br># 或者<br>$ docker info</p>
<p>Mac命令行启动docker服务<br>launchctl 查看 docker server<br>launchctl list | grep docker<br>关闭和启动它<br>launchctl stop com.docker.docker.15648 &amp;&amp; launchctl start com.docker.docker.15648</p>
<p>&nbsp;</p>
<p>二、Mac下的配置修改<br>vi ~/.docker/daemon.json<br>{</p>
<p>"debug": true,<br>"experimental": true,<br>"registry-mirrors": ["https://u6krpdpq.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com"],<br>"insecure-registries": ["192.168.1.2:5000"]<br>}</p>
<p>&nbsp;</p>
<p>三、常用命令</p>
<p>1、查询本地容器和镜像</p>
<p>docker ps -a    # 显示所有的容器<br>docker image ls      # 列出本地镜像</p>
<p>docker search alplin&nbsp; # 搜索alplin相关镜像</p>
<p>&nbsp;</p>
<p>2、获取镜像</p>
<p>docker pull :    # 拉取镜像</p>
<p>docker pull alpine:latest</p>
<p>docker pull centos:centos7.7.1908</p>
<p><span class="s1">docker pull <span class="s2">hub.c.163.com/library/alpine:latest&nbsp; # 从国内163源站拉取镜像</span></span></p>
<p>&nbsp;</p>
<p>3、创建容器</p>
<p>docker create --name&nbsp; alpine:latest&nbsp;</p>
<p>docker run --name centos7 -itd centos:centos7.7.1908 /bin/bash&nbsp; # 创建并运行容器</p>
<p>docker run --name myalpine -itd alpine:latest /bin/sh</p>
<p>docker run --name centos72 -itd -v `pwd`:/bankapp/app -w /bankapp/app -p 8000:8000 --privileged=true centos7:nodejs10 /bin/bash</p>
<p>&nbsp;</p>
<p>4、创建容器<br>docker create --namealpine:latest</p>
<p>5、删除容器<br>docker rm&nbsp;containerID</p>
<p>docker image rm IMAGEID&nbsp; # 删除本地镜像</p>
<p>6、启动容器<br>docker start&nbsp;containerID</p>
<p>7、进入容器<br>docker attach&nbsp;containerID</p>
<p>8、停止容器运行<br>docker stop&nbsp;&nbsp;containerID</p>
<p>9、从现有容器导出导入新的镜像<br>docker commit -a "webplus" -m "centos7 nodejs_10.18.0 "&nbsp;containerID&nbsp;centos:centos7_node10&nbsp; &nbsp; &nbsp; &nbsp;# 提交容器的修改<br>docker export -o centos7_node10_`date +%Y%m%d`.tar containerID            &nbsp;&nbsp;&nbsp;# 导出新的镜像.tar<br>docker import ./centos_nodejs-20200402.tar centos:centos7_nodejs               #&nbsp;导入存档镜像</p>
<p>10、从现在镜像保存和导入镜像</p>
<p>docker save -o my_ubuntu_v3.tar&nbsp;centos:centos7_nodejs&nbsp; #&nbsp;将指定镜像保存成 tar 归档文件可进行分发</p>
<p>docker load -ip&nbsp;my_ubuntu_v3.tar &nbsp;&nbsp;#&nbsp;导入使用 docker save 命令导出的镜像</p>
<p>&nbsp;</p>
<p>四、本地搭建私库</p>
<p>1、拉取registry镜像</p>
<p>docker pull&nbsp;registry</p>
<p>2.创建宿主机储存目录【/opt/data/registry】:</p>
<p><em id="__mceDel">mkdir -p /opt/data/registry</em></p>
<p>docker create -d -p 5000:5000 -v /opt/data/registry:/tmp/registry --privileged=true --restart=always --name registry</p>
<p>&nbsp;</p>
<p>3、也可直接拉取镜像并新建容器, -p端口映射,-v本地库目录映射<br>docker run -d -p 5000:5000 -v /Users/apple/aaa/docker:/tmp/registry registry<br>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</p>
<p>&nbsp;</p>
<p>4、配置https权限支持,修改完需要重启,有时候可能重启失败,可能是因docker检查192.168.1.128:5000是否能访问:</p>
<p>Mac vi ~/.docker/daemon.json</p>
<p>{</p>
<p>"insecure-registries":["192.168.1.128:5000"]</p>
<p>}</p>
<p>&nbsp;</p>
<p>5、push到私有仓库&nbsp;</p>
<p>docker tag&nbsp;centos:centos7_nodejs&nbsp;192.168.1.128:5000/centos7_nodejs:v1&nbsp; &nbsp;#&nbsp;修改镜像的tag</p>
<p>docker push 192.168.1.128:5000/nodejs10:1.0.0&nbsp; #&nbsp;推送镜像到本地仓库</p>
<p>&nbsp;</p>
<p>参考文档:</p>
<p>阮一峰Docker 入门教程&nbsp;</p>
<p>Docker 中文指南</p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/terrylin/p/12643013.html
頁: [1]
查看完整版本: 前端开发Docker快速入门(一)