`
yhz61010
  • 浏览: 558312 次
  • 来自: -
博客专栏
63c13ecc-ef01-31cf-984e-de461c7dfde8
libgdx 游戏开发
浏览量:12182
社区版块
存档分类
最新评论

[原创] Ubuntu 下 Docker 安装及使用简明教程 - 制作 Spring Boot 应用镜像

阅读更多
本文是简明教程,面向和我一样刚学习 Docker 的人。请各位高手及专家自觉绕行。

安装前,先说明下我的系统环境:
OS: Ubuntu 16.04 LTS Desktop amd64

我已经打包好了一个 Spring Boot 工程(jar 形式)。由于 Spring Boot 中已经集成了 Tomcat,因此,在制作 Docker 时,只需要 Java 环境即可。

安装 Docker
官方安装说明:https://docs.docker.com/engine/installation/linux/ubuntulinux/

安装要求:
Docker 要求系统必须是 64 位系统,并不要求 Ubuntu 的版本,内核版本要求至少是 3.10。

检查内核版本:
$ uname -r
4.4.0-24-generic
更新 APT 镜像源:
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
添加 GPG Key:
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
打开如下文件(若不存在的话则创建一个)/etc/apt/sources.list.d/docker.list,删除文件中所有的内容,并根据系统的版本添加如下内容:
$ sudo vim /etc/apt/sources.list.d/docker.list
Ubuntu Precise 12.04 (LTS)
deb https://apt.dockerproject.org/repo ubuntu-precise main
Ubuntu Trusty 14.04 (LTS)
deb https://apt.dockerproject.org/repo ubuntu-trusty main
Ubuntu Wily 15.10
deb https://apt.dockerproject.org/repo ubuntu-wily main
Ubuntu Xenial 16.04 (LTS)
deb https://apt.dockerproject.org/repo ubuntu-xenial main
更新 APT 镜像源:
$ sudo apt-get update
清理旧的 repo (如果存在的话):
$ sudo apt-get purge lxc-docker
验证 APT 是否更新成功:
$ apt-cache policy docker-engine
docker-engine:
  已安装:(无)
  候选: 1.11.2-0~xenial
  版本列表:
     1.11.2-0~xenial 500
        500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
     1.11.1-0~xenial 500
        500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
     1.11.0-0~xenial 500
        500 https://apt.dockerproject.org/repo ubuntu-xenial/main amd64 Packages
Ubutnu 14.04 以上的用户,建议继续完成如下步骤:

安装 linux-image-extra 包:
$ sudo apt-get install linux-image-extra-$(uname -r)
Ubutnu 14.04 及以下的用户,还需要安装 apparmor:
$ sudo apt-get install apparmor
安装 Docker
$ sudo apt-get install docker-engine
启动 docker daemon:
$ sudo service docker start
验证 docker 是否安装成功:
$ sudo docker run hello-world
至此, docker 的安装已经结束。

通过情况下,运行 docker 需要管理员权限,如果你不想每次执行 docker 命令时都加上 sudo 的话,可以执行如下步骤:

创建 docker group:
$ sudo groupadd docker
将需要执行 docker 命令的用户(例如:yhz61010)添加到 docker 组中:
$ sudo usermod -aG docker yhz61010
注销当前用户,并重新登录。

验证:
$ docker run hello-world
如果运行失败的话,会有如下提示:
Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
设置 docker daemon 随机启动:
$ sudo systemctl enable docker
------------------------------------------------------

下载镜像

示例:从官方仓库中下载最新版 Ubuntu 镜像:
$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
5ba4f30e5bea: Downloading [======>                                            ] 6.389 MB/48.65 MB
9d7d19c9dc56: Download complete 
ac6ad7efd0f9: Download complete 
e7491a747824: Download complete 
a3ed95caeb02: Download complete 
查看已下载的镜像:
$ docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              693bce725149        2 weeks ago         967 B
ubuntu              latest              2fa927b5cdd3        3 weeks ago         122 MB
安装 Java 环境

在容器中挂载主机上下载好的 JDK 作为数据卷。
假设:
主机上下载好的 JDK 路径如下:/media/[Your login user]/Linux/Java/
挂载到容器中的如下目录:/home/Download/
$ docker run -i -t -v /media/[Your login user]/Linux/Java/:/home/Download ubuntu /bin/bash
说明:
-i 交互模式
-t 控制台模式
-v 指定数据卷
ubuntu 镜像名
/bin/bash 需要执行的命令

进行容器后,会看到类似如下的内容:
root@569c12b64f64:/# 
注意:请记下 “569c12b64f64” 这个数字,后面制作镜像时会用到。
之后在容器中安装 Java 并配置环境(方法请自行 Google 或 百度)。
然后将打包好的 Spring Boot 工程,放到容器中。
之后执行如下命令退出容器:
# exit
制作镜像

运行如下命令制作镜像:
$ docker commit -m "Add Oracle Java7 and Spring Boot project" -a "Author Name" 569c12b64f64 ubuntu/java7:v1
说明:
-m 后面是本次提交的说明。
-a 后面是本次提交的作者。
569c12b64f64 即之前记下的窗口ID。
ubuntu/java7:v1 是镜像的名称及版本

查看新制作的镜像:
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu/java7        v1                  686982dab31f        7 seconds ago       772.8 MB
hello-world         latest              693bce725149        2 weeks ago         967 B
ubuntu              latest              2fa927b5cdd3        3 weeks ago         122 MB
启动 Spring Boot
$ docker run -d -p 57070:7070 --name springboot ubuntu/java7:v1 java -jar /springboot-0.0.1-SNAPSHOT.jar
说明:
-d 在后台执行
-p 57070:7070 将容器中的 7070 端口映像到主机上的 57070 端口(我已经将 Spring Boot 中的 Tomcat 端口改成了 7070)。
--name 后面指定的是启动容器后容器的名称。
ubuntu/java7:v1 是镜像的名称。
java -jar /springboot-0.0.1-SNAPSHOT.jar 是需要执行的命令。

查看容器 IP

在主机或容器中运行 ifconfig 命令,查看容器的 IP 地址。
下面的示例是在主机中运行 ifconfig 命令查看容器的 IP 地址:
$ ifconfig 
docker0   Link encap:以太网  硬件地址 02:42:49:a6:b0:8d  
          inet 地址:172.17.0.1  广播:0.0.0.0  掩码:255.255.0.0
          inet6 地址: fe80::42:49ff:fea6:b08d/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  跃点数:1
          接收数据包:11263 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:16826 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:0 
          接收字节:648407 (648.4 KB)  发送字节:24761295 (24.7 MB)
......
......
......
查到了容器的 IP 地址,在主机中就可以访问容器中的 Spring Boot 工程了。

==========================================================================================

其它说明:

删除所有容器:
$ docker rm $(docker ps -a -q)
删除指定容器:
# 首先查看所要删除的容器 ID
$ docker ps -a
# 然后执行如下命令:
$ docker rm [容器 ID]
删除镜像:
说明:在删除镜像之前要先用 docker rm 删掉依赖于这个镜像的所有容器。
# 首先查看所要删除的镜像信息
$ docker images
# 然后执行如下命令删除指定的镜像
$ docker rmi [镜像完整名或镜像 ID]
# 例如:
$ docker rmi 693bce725149
# 或
$ docker rmi ubuntu/java7:v1
0
1
分享到:
评论

相关推荐

    ubuntu20.04下docker及nvidia-docker安装包

    toolkit_1.5.1-1_amd64.deb nvidia-docker2_2.6.0-1_all.deb 2)docker:containerd.io_1.6.26-1_amd64.deb,docker-buildx-plugin_0.11.2-1~ubuntu.20.04~focal_amd64.deb,docker-ce_24.0.7-1~ubuntu.20.04~focal_...

    Ubuntu docker 20.10.12版本和docker-compose离线安装包

    1. `docker-ce-cli_20.10.12_3-0_ubuntu-focal_amd64.deb`:这是Docker CLI的安装包,用于在Ubuntu Focal Fossa (20.10)系统上安装Docker的命令行工具。通过这个工具,你可以执行像`docker run`、`docker build`等...

    Ubuntu20.04离线部署nvidia-docker

    确保你已经下载了对应Ubuntu 20.04的正确版本,并将其保存在你的本地文件系统中,例如`/home/user/downloads/nvidia-docker离线安装`目录下。 **步骤1:更新系统** 在开始安装前,确保系统是最新的,以避免兼容性...

    boot2docker.iso的v18.02.0-ce版本

    通过YAML文件,开发者可以轻松地配置服务、网络和卷,然后通过`docker-compose up`命令一次性启动所有服务。这大大简化了微服务架构的应用部署和管理。 其次,Docker Engine在v18.02.0-ce中进行了性能优化,提高了...

    将Spring boot应用打包成镜像放到docker中运行

    将Spring boot应用打包成镜像放到docker中运行: https://blog.csdn.net/anla_/article/details/79943251

    ubuntu离线安装nvidia-docker2

    在Ubuntu系统中,离线安装`nvidia-docker2`是一项关键任务,特别是对于那些没有稳定网络连接或者希望在隔离环境中部署GPU加速的Docker容器的用户。`nvidia-docker2`是一个允许你在Docker容器中充分利用NVIDIA GPU...

    Android代码-spring-boot-examples

    Spring Boot Examples Spring Boot 使用的各种示例,以...spring-boot-docker:使用 Docker 部署 Spring Boot 示例 dockercompose-springboot-mysql-nginx :Docker Compose Spring Boot Nginx Mysql 示例 spring-boot

    boot2docker.iso的v17.12.1-ce版本.zip

    从https://github.com/下载下来的,boot2docker.iso镜像,v17.12.1-ce版本的。

    Ubuntu离线安装docker与nvidia-docker离线资源包

    在Ubuntu系统上离线安装Docker和NVIDIA-docker是一项技术性较强的任务,尤其是在没有网络连接的情况下。这里我们将详细介绍如何通过提供的离线资源包完成这一过程。 首先,我们需要理解Docker和NVIDIA-docker的基本...

    Ubuntu系统的Docker离线安装包

    3、sudo dpkg -i docker-ce_20.10.7_3-0_ubuntu-xenial_amd64.deb 查看Docker的版本 sudo docker --version 如果不想每次执行docker命令的时候使用sudo,可执行如下命令: sudo usermod -aG docker 登录账号

    boot2docker.iso的v18.05.0-ce版本

    用户无需在本地安装完整的Linux系统,只需通过虚拟机管理软件加载Boot2Docker ISO,即可快速搭建Docker开发或测试环境。 4. **自动配置**: Boot2Docker启动后会自动配置Docker守护进程,连接到宿主机的Docker守护...

    docker-machine boot2docker-17.09-ce 镜像

    docker-machine boot2docker-17.09-ce 镜像文件 由于通过脚本到github.com拉取镜像较慢,特意将该文件上传. 原拉取该镜像命令为:docker-machine create --driver virtualbox default 使用方法 1.下载好后讲该文件...

    Docker镜像制作流程,包括docker安装、使用、镜像的制作、及使用

    Docker 镜像制作流程是一系列复杂的步骤,包括 Docker 的安装、使用、镜像的制作和使用等。在本文中,我们将详细介绍 Docker 镜像制作流程的每一个步骤,并提供实用的命令和配置文件。 一、Docker 安装 在开始制作...

    docker镜像-ubuntu16.04.3

    仅44.5M大小的docker ubuntu镜像 完整的apt支持。使用方式:docker load -i ubuntu_16.04.3-image.tar.gz

    canal-adapter-v1.1.7的docker镜像

    canal-adapter-v1.1.7,docker镜像,参考的制作流程:https://blog.csdn.net/qiaodaima0/article/details/125561823?spm=1001.2014.3001.5501

    ubuntu 16.04 docker 离线安装包 docker-ce_18.03.1

    ubuntu 16.04 docker 离线安装包 docker-ce_18.03.1 上传到服务器,执行安装命令 # sudo dpkg -i libltdl7_2.4.6-0.1_amd64.deb # sudo dpkg -i libseccomp2_2.3.1-2.1ubuntu2~16.04.1_amd64.deb # sudo dpkg -i ...

    ubuntu20.04的docker镜像文件

    ubuntu20.04的docker镜像文件

    boot2docker.iso (v18.05.0-ce)

    鉴于有的朋友更新boot2docker很慢,所以分享一下v18.05.0-ce版本,有爱自取

    内网离线安装docker、docker-compose

    一键离线安装docker、docker-compose

    spring-boot-examples-master.zip

    spring-boot-examples-master示例程序,与各种框架集成,包括: dockercompose-springboot-mysql-nginx spring-boot-actuator spring-boot-banner spring-boot-docker spring-boot-elasticsearch spring-boot-...

Global site tag (gtag.js) - Google Analytics