Docker 部署前端项目流程
1、基本的 docker 操作命令
docker images --- 查看所以镜像
docker search 镜像名 --- 搜索相关镜像
docker images | grep 镜像名模糊搜索
docker pull(-a) 镜像名:版本号 --- 拉取镜像,-a pull all
docker push 192.168.0.100:5000/ubuntu --- 推送镜像库到私有源
docker rmi(-f) 镜像名:版本号/镜像 ID --- 删除镜像 (加上 -f 参数 强制删除)
docker rmi $(docker images -q) --- 删除所有镜像
docker ps --- 查看所以的容器
docker ps -a --- 查看所有容器的状态
docker exec -it 容器 name /bin/sh --- 进入容器
exit --- 退出容器
docker start/stop id/name[name...] --- 启动/停止某个(多个)容器
docker kill name[name...] --- 强制中断
docker restart name[name...] --- 重启
docker pause name --- 暂停
docker unpause name --- 继续
docker rm name[name...] --- 移除容器
docker rmi (-f) name[name...] --- 移除镜像(-f:强制移除运行中容器)
一键删除所有 tag 为 none 的镜像
docker rmi `docker images | grep "<none>" | awk '{print $3}'`
https://www.runoob.com/docker/docker-command-manual.html 更详细的命令操作请查看
2、上传本地镜像到远程镜像仓库
第一步:连接远程镜像仓库 (docker login ip 地址:端口号)
第二步:获取远程仓库中的镜像 (docker push 镜像名)
第三步:获取仓库中所有镜像 (docker images )
第四步:编写自己的 dockerfile 文件
第五步:build 当前镜像中的 dockerfile 文件,生成新的 dockerfile 文件。 (docker build -t 镜像名:tag . )
第六步:本地测试是否 build 成功 【本步骤可省略】, (docker run -p 8081:80 -d --name 容器名 镜像名:tag)
-p, --publish=[], 指定容器暴露的端口
-d, --detach=false, 指定容器运行于前台还是后台,默认为 false
--name="", 指定容器名字,后续可以通过名字进行容器管理,links 特性需要使用名字
第七步:查看当前运行的容器 (docker ps )
第八步:测试成功后上传镜像, (docker push 镜像名:tag)
第九步:查看仓库中的所有镜像 (docker images)
3、本地镜像上传到服务器
本地环境
- docker images 查看本地 docker 镜像
- 找个路径 cd Downloads/ -> docker save -o nr.tar(名字.tar 包) 10.1.32.209:9081/dist/nr-web-app:v1024(镜像:tag)
- scp nr.tar root@10.1.32.194:/root
- 登录 ssh root@10.1.32.194
dist@2020 - 上传 docker load -i nr.tar(名字.tar 包)
- 查看 docker 服务 docker service ls
- 更新某个服务下的镜像 docker service update front_nr-frontend --image 10.1.32.209:9081/dist/nr-web-app:v1024
最后终端出现
[root@master ~]# docker service update front_nr-frontend --image 10.1.32.209:9081/dist/nr-web-app:v1024
image 10.1.32.209:9081/dist/nr-web-app:v1024 could not be accessed on a registry to record
its digest. Each node will access 10.1.32.209:9081/dist/nr-web-app:v1024 independently,
possibly leading to different nodes running different
versions of the image.
front_nr-frontend
overall progress: 2 out of 2 tasks
1/2: running [==================================================>]
2/2: running [==================================================>]
verify: Service converged