Docker部署Jira许可证关键字实践:docker_practice


  • 参考

Overview of get started | Docker DocsLearn how to get started with Docker and Docker Desktop

docker jira 许可证关键字 docker_practice_spring cloud

https://docs.docker.com/guides/get-started/Docker Hello World | 菜鸟教程Docker Hello World Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。 输出Hello world runoob@runoob:~$ docker run ubuntu:15.10 /bin/echo 'Hello world' Hello world 各个参数解析: docker: Docker 的二进制执行文件。 run: 与前面..

docker jira 许可证关键字 docker_practice_spring cloud

https://www.runoob.com/docker/docker-hello-world.html以及desktop指引

软件介绍

docker jira 许可证关键字 docker_practice_Docker_03

点第一个直接就创建了一个容器,浏览器打开,速度超快。

docker jira 许可证关键字 docker_practice_docker jira 许可证关键字_04

没有完全明白怎么回事,决定按以下指引再来,因为毕竟回头要在linux上执行命令的,熟悉下好

Docker Hello World

Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。

输出Hello world

runoob@runoob:~$ docker run ubuntu:15.10 /bin/echo "Hello world"Hello world


docker jira 许可证关键字 docker_practice_docker jira 许可证关键字_05

各个参数解析:

  • docker: Docker 的二进制执行文件。
  • run: 与前面的 docker 组合来运行一个容器。
  • ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/echo "Hello world": 在启动的容器里执行的命令

以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。

 愣一下才明白,这是在Ubuntu中以命令方式执行docker,创建容器。果然执行完后,能看到创建的容器

docker jira 许可证关键字 docker_practice_微服务_06

docker jira 许可证关键字 docker_practice_Docker_07

win版的docker desktop有一个learning center,这个和官方指引的Quick hands-on guides是一样的,可以理解为win版的桌面指引。我之前想多线并行,同时参考命令和桌面的两个指引,但操作起来比对太多,返工不少。现在决定还是先从这个开始,可以快速给自己一个概念,再看命令版本会快速很多。

配置镜像

找到daemon.json文件,不管是win 还是linux版,本质上是一样的,都是改这个文件,做好备份,如若失败可以回退。

增加以下内容(不建议用ali,)

"registry-mirrors": [
    "https://dockerproxy.com",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://ccr.ccs.tencentyun.com"
  ]
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

重启查看

# 重启 Docker 服务
# 方法一,采用 systemctl 来重启,推荐
systemctl daemon-reload
systemctl restart docker
# 方法二,采用 service 来重启
service docker restart

#查看是否成功
# 查看 Docker 信息
docker info

# 出现以下字段代表配置成功
#Registry Mirrors:
#  https://dockerproxy.com/...
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

How do I run a container?

用git down一个应用工程

git clone https://github.com/docker/welcome-to-docker
  • 1.

 可以看到这就是一个工程,我们在意Dockerfile文件,回头自己的工程中需要自己设定此问文件内容,例子中已写定完毕,其内容我们回头再看。

docker jira 许可证关键字 docker_practice_docker jira 许可证关键字_08

 You always need an image to run a container。所以我们build自己的image

cd /path/to/welcome-to-docker/
docker build -t welcome-to-docker .
  • 1.
  • 2.

In the previous command, the -t flag tags your image with a name, welcome-to-docker in this case. And the . lets Docker know where it can find the Dockerfile.

docker jira 许可证关键字 docker_practice_Docker_09

之后在Images tab中,选择你的image,点run,输入名字和端口

docker jira 许可证关键字 docker_practice_docker jira 许可证关键字_10

Run Docker Hub images

也可以直接运行hub上的镜像,在搜索框(ctrl+k)中输入,直接查找运行(省去手动pull的操作)

注:此功能需要外网....

docker jira 许可证关键字 docker_practice_spring cloud_11

multi-container applications

 以上例子都是单一内容的容器,要是用个mysql,还要分别启两个容器吗?这里用compose(Docker Compose manual,同时启动多个容器。

git clone https://github.com/docker/multi-container-app
  • 1.

 下来后发现有一个compose.yaml文件,而app文件中才是之前提到的有Dockerfile文件的工程。

docker jira 许可证关键字 docker_practice_docker_12

cd /path/to/multi-container-app/
docker compose up -d
  • 1.
  • 2.

In the previous command, the -d

 坑,构建报错:

docker jira 许可证关键字 docker_practice_微服务_13

出乎意料,指引都能错,查询了一下failed to solve: ***: failed commit on ref “unknown-sha256:这种错误可能是我采用了镜像导致的,有文章中提到要撤掉阿里镜像,那我配置它做什么。这里用了另一个方法,手动pull。docker pull docker/dockerfile:1,之后镜像中能看到pull下来的内容。

再次 compose另一个组件又报同样错误,得,干掉阿里镜像,这次行了,就是慢,400s下6M内容...

成功后会启动两个容器,可以看到之前下的dockerfile:1镜像没有用,这也符合预期:我要每一个都手动启动不累死,况且我也没有手动操作启动

docker jira 许可证关键字 docker_practice_spring cloud_14

在工程目录下执行docker compose watch 命令可以把修改内容实时展示出来,这在docker开发中可以使用。在这个例子中,修改todos.ejs中的内容,页面马上会更新

Persist container data

 容器都是独立的,代码和数据都和本地隔离,删除容器后不可恢复。用volumes去持久数据。接上一个例子把如下内容注释放开:

todo-database:
    # ...
    volumes:
      - database:/data/db

# ...
volumes:
  database:
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

注意这个命令是这么解释的:把一个名叫database的卷挂载到data/db下,而database卷的定义在下边,下边的层级最高,决定了此文件所有的注册服务都可以访问这个卷。如果把下边卷的名字改下,马上会报找不到database卷的错误。实际上看todo-database也是这样定义的。

之后再执行命令docker compose up -d启动,输入一些内容

docker jira 许可证关键字 docker_practice_docker_15

之后删除容器。再次创建启动后你会发现之前输入保存的内容还在。 

docker jira 许可证关键字 docker_practice_docker_16

疑问:1.这个卷感觉应该能被本地访问到,目前还不知道如何操作。。。

           2.我发现每次启动后都会多一个卷,显示被使用,且挂载位置完成一致,但没有数据,熟悉的同学知道是怎么回事吗?

docker jira 许可证关键字 docker_practice_docker_17

docker jira 许可证关键字 docker_practice_spring cloud_18

Access a local folder from a container 

you can use bind mounts to do that.见鬼了,开这么多口子,都能相互访问了。

git clone https://github.com/docker/bindmount-apps
  • 1.

 之后修改compose.yaml文件内容:

todo-app:
    # ...
    volumes:
      - ./app:/usr/src/app
      - /usr/src/app/node_modules
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

它把本地的./app挂载到/usr/src/app,原目录会被覆盖。第二条指定/usr/src/app/node_modules不会被外部覆盖。

之后以同样的命令启动,在app目录下更改内容,就可以看到页面上实施反映了更改的内容。

docker jira 许可证关键字 docker_practice_spring cloud_19

注意,这里的app目录不是linux系统的目录,是你工程compose.yaml文件的同级目录,一开始找了半天都没有找到。

Containerize your application

docker init命令可以帮助生成dockerfile、compose.yaml等文件。跟随提示,最后执行

docker compose up
  • 1.

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空