【docker】Docker Desktop 镜像打包、测试、上传

张裕  高级会员 | 前天 15:21 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 212|帖子 212|积分 636

【docker】Docker Desktop 镜像打包、测试、上传


  
docker desktop 安装

docker desktop 是部署在windows 上运行docker的应用服务,基于windows 的 Hyper-V 服务和WSL2内核的Windows上创建一个子系统(linux)。
开启Hyper-V 服务

【控制面板】—【程序】—【程序和功能】—【启动或关闭Windows功能】中 勾选【Hyper-V】和【容器】选项


安装WSL

AWSL的意思是a windows subsystem for linux


  • 支持的子系统
  1. > wsl --list --online
  2. 以下是可安装的有效分发的列表。
  3. 使默认分发用 “*” 表示。
  4. 使用 'wsl --install -d <Distro>' 安装。
  5.   NAME            FRIENDLY NAME
  6. * Ubuntu          Ubuntu
  7.   Debian          Debian GNU/Linux
  8.   kali-linux      Kali Linux Rolling
  9.   openSUSE-42     openSUSE Leap 42
  10.   SLES-12         SUSE Linux Enterprise Server v12
  11.   Ubuntu-16.04    Ubuntu 16.04 LTS
  12.   Ubuntu-18.04    Ubuntu 18.04 LTS
  13.   Ubuntu-20.04    Ubuntu 20.04 LTS
复制代码


  • 用管理员身份打开命令行,选择一个安装
  1. >wsl --install -d ubuntu
  2. 正在安装: 适用于 Linux 的 Windows 子系统
  3. [==========================74.8%============
复制代码


  • 查察wsl版本
  1. > wsl -l -v
  2. 默认版本为WSL2
  3. 使用'wsl --set-default-version 2' 设置 WSL2 为默认版本
  4.   NAME                   STATE           VERSION
  5. * Ubuntu                 Stopped         2
复制代码
下载并安装docker desktop for windows

打开网址 https://docs.docker.com/desktop/install/windows-install/ 举行下载windows版,如下图

下载完成后安装。
利用docker desktop

参考docker desktop 安装部署及利用 - 我是一只搬砖狗 - 博客园 (cnblogs.com)
containers


点击上图中的容器名称,例如「mysql_cn」,会进入到如下图所示的容器页面。展示了此容器的一些信息和 操作按钮,点击「Logs」的tap页,会显示此容器的运行日志。容器日志直接展示在页面上,就方便查察了(一般也可以在后台通过docker命令来查察日志信息。不过命令查察有点麻烦,看起来也不太方便)

terminal 是容器的终端(即已经在容器里面了), 可以在终端上实验一些mysql的命令,进入到mysql 实验sql语句。
一般如果不通过这个终端的话,需要在控制台上先通过docker 命令进入到容器内部,然后再在容器内部利用mysql命令
所以terminal 的好处就是省略了 docker命令进容器的步骤。还是比较方便的。

images

一个镜像可以启动多个容器,可以设置差别的容器名称,比如为可以启动两个mysql容器如许就有两个mysql容器在运行,两者运行互不干扰

通过镜像启动一个容器:

如下图,通过镜像启动一个容器时,只配置了容器名和环境变量信息,没有配置端口映射。但是容器也是可以启动的。 (个人明白:端口映射的目标是为了其他电脑访问本机的mysql_2 容器时,是通过 本机ip +映射端口来访问的。映射端口 是映射到了 mysql_2容器的端口。如许就可以访问容器中的mysql 了。 但如果容器本身不需要被访问的话,容器本身运行,我通过控制台利用docker 命令来进入到容器内容,利用mysql的命令进入到mysql 中来操作mysql ,也是可以的。)
不过,正常的利用环境是需要配置端口映射的。下图中,端口配置中,有两个端口需要配置端口映射,一个是3306,一个是33060端口。查察一下资料,两个端口是分别利用差别的协议来举行通信的。通常我们利用的都是3306, 所以只配置3306端口的映射即可(在输入框中输入一个端口号,条件是未被占用的端口号; 或者直接输入个0 ,会随机分配一个端口号)。

打包镜像

Dockerfile

构建docker镜像的构建文件
  1. FROM                 #基础镜像,一切从这里开始构建
  2. MAINTAINER        #镜像是谁写的,姓名+邮箱
  3. RUN                        #镜像构建时需要运行的命令
  4. ADD                        #步骤,tomcat镜像,这个tomcat压缩包;添加内容
  5. WORKDIR                #镜像工作目录
  6. VOLUME                #挂载的目录
  7. EXPOSE                #暴露端口配置
  8. CMD                        #指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
  9. ENTRYPOINT        #指定这个容器启动的时候要运行的命令,可以追加命令
  10. ONBUILD                #当构建一个被继承DockerFile 这个时候就会运行 ONBUILD 的指令,触发指令
  11. COPY                #类似ADD,将我们的文件拷贝至镜像中
  12. ENV                        #构建的时候设置环境变量
复制代码
  1. FROM python:3.8
  2. LABEL maintainer="*"
  3. WORKDIR /
  4. COPY requirements.txt /                                依赖库文件
  5. RUN pip install --no-cache-dir -r /requirements.txt
  6. COPY main.py /
  7. COPY start.sh /
  8. EXPOSE 8080
  9. CMD ["sh", "/start.sh"]
复制代码
新建requirements.txt

  1. fastapi
  2. uvicorn
  3. mysql-connector-python
  4. requests
  5. numpy
  6. scipy
复制代码
生成镜像

进入文件目次
  1. docker build -t Name:TagName .
  2. > docker build -t hello-docker-image .
  3. -t参数指定构建成后,镜像的仓库、标签等,
  4. Name 给镜像取的名字
  5. TagName 给镜像取的标签
  6. 最后的 .  表示 Dockerfile 文件在当前目录下
复制代码
测试镜像

  1. > docker run --rm hello-docker-image
  2. > docker run -p 9001:8080 --rm hello-docker-image
  3. 本地端口映射-p 9001:8080
复制代码
推送镜像到harbor

默认已有harbor堆栈


  • 打开docker deskstop 【设置】—【Docker Engine】— 设置harbor地址 ,主要是insecure-registries —【apply and restart】
  1. {
  2.         "insecure-registries": ["http://harbor.com"]
  3. }
复制代码


  • 登录harbor服务器
  1. docker login harbor.com
复制代码


  • 推送
  1. docker push harbor.com/hello-docker-image:latest
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张裕

高级会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表