Docker 学习笔记 (三)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Docker 学习笔记 (三)

Docker 端口映射#


-p (小写)的几种用法#


  • 指定容器的端口动态的映射到宿主机的端口上


[root@139 ~]# docker run --name mysql -d -p 3306 -e MYSQL_ROOT_PASSWORD=123123  mysql
291f7337a1ac0232d84eae4b3632bd044bcc433c7a0bafaf97b638a05ddddaf8
[root@139 ~]# docker port mysql 
3306/tcp -> 0.0.0.0:32770
--------解释-----------
在宿主机上找一个动态的端口,映射到 Containner的 3306端口上


  • 端口映射


[root@139 ~]# docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123123  mysql
eaa6bdb54df54419cce5866d5050fec8d1aba4d7d5b85ab41c3e41fd1887c6d0
[root@139 ~]# docker port mysql
3306/tcp -> 0.0.0.0:3306
--------解释-----------
成功的将宿主机上的3306端口映射到 mysql Containner的3306端口上


  • 通过宿主机ip+端口, 映射到容器的指定端口上


[root@139 ~]# docker run --name mysql -d -e MYSQL_ROOT_PASSWORD=123123 -p 192.168.0.32:3306:3306 mysql
e1ef0d628415a41d6a122c78909cb63c00a788056395d64e667c496ac0c68cdc
[root@139 ~]# docker port mysql
3306/tcp -> 192.168.0.32:3306


  • 指定宿主机的ip, 将容器中的指定端口映射到动态的宿主机端口


[root@139 ~]# docker run --name mysql -d -e MYSQL_ROOT_PASSWORD=123123 -p 192.168.0.32::3306 mysql
2f125488de4dbe4b5583baa46cbedb11a6b15cd38804c23815475d39a262dff5
[root@139 ~]# docker port mysql
3306/tcp -> 192.168.0.32:32768


-P (大写) 的用法#


目的是暴露容器中的所有端口, 哪些端口呢? 就是我们在Dockerfile中通过Export指定的端口


Docker Compose 编排SpringCloud#


将项目容器化后固然很方便,但是总不能真的就挨个去启动吧,其实是不用的,我们使用DockerCompose, 使用Componse我们可以在yml中去配置我们的服务,使用单行命令实现启动配置中的所有服务


下面的示例是使用Docker Compose编排我写的 一个法律助手的项目


下载安装#


项目在github上面: https://github.com/docker/compose/releases

下载:


curl -L https://github.com/docker/compose/releases/download/1.25.0-rc3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose


给docket-compose 可执行的权限


chmod +x /usr/local/bin/docker-compose


设置软链接


ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose


验证是否安装


docker-compose version


卸载


rm /usr/local/bin/docker-compose


思路: DockerComponse的配置文件和Dickerfile中的配置文件类似的, 它的格式的 yml

首先就是安排好jar包和文件的目录位置, 比如下图, 四个蓝色名称的目录中存放着不同功能的jar包,DockerComponse需要的配置文件 docker-componse.yml 也在这里面



docker-componse.yml 实战模板:


version: '2.1'
services:
  eurekaserver:
    image: eurekaserver:v1
    ports:
     - 10086:10086
  lawyer-lover-consumer:
    image: lawyer-lover-consumer:v1
    ports:
     - 8082:8082
  lawyer-lover-main:
    image: lawyer-lover-main:v1
    ports:
     - 8081:8081
  lawyer-lover-zuul:
    image: lawyer-lover-zuul:v1
    ports:
     - 10010:10010


输入命令进行自动编排


docker-compose up -d
-----------------------
-d 表示后台启动


结果: 看着自己写了这些天的项目上线了, 真的爽歪歪啊...



验证结果:



将本地镜像发布到阿里云仓库#


如果你也想一处构建, 导出运行的话, 可以玩玩这个功能

网址: https://cr.console.aliyun.com/cn-hangzhou/repositories


  • 将镜像推送到阿里云


# 登录阿里云的docker仓库
  docker login --username=[用户名] registry.cn-hangzhou.aliyuncs.com
# 创建指定镜像的tag,归入某个仓库
  docker tag [镜像ID] registry.cn-hangzhou.aliyuncs.com/huaan/huaan:[镜像版本号]
# 将镜像推送到仓库
  docker push registry.cn-hangzhou.aliyuncs.com/huaan/huaan:[镜像版本号


  • 拉取镜像到本地


docker pull registry.cn-hangzhou.aliyuncs.com/coldest7/mytom:v1


dokcer run --help

docker --help

docker network --help

dokcer Containner --help

docker image --help

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
Kubernetes Ubuntu Linux
docker学习笔记
docker学习笔记
62 0
|
3月前
|
安全 网络安全 开发者
Docker学习笔记(一):Docker命令总结
本文介绍了Docker的基本概念、优点以及常用命令。Docker是一个开源的应用容器引擎,它通过容器打包应用程序及其依赖项,实现快速部署和迁移。主要优点包括轻量级、可移植性、易于管理、安全性和开源性。文章还区分了镜像和容器的概念,并提供了构建镜像、查看容器、运行容器、停止和删除容器等常用Docker命令的示例。
171 0
|
4月前
|
Docker Windows Python
Windows-Docker学习笔记(一)
本文介绍了Windows环境下Docker的安装与使用方法。首先通过链接下载Windows版本的Docker,然后按步骤配置:启用Windows功能、设置默认WSL版本为2,并检查Docker及其组件是否正常工作。接着详细列出了Docker的基础命令及其用法,包括搜索、下载镜像、管理容器等。同时介绍了Dockerfile的编写方法及其构建过程,以及docker-compose.yml文件的用途。最后提供了运行和管理容器的具体示例。
Windows-Docker学习笔记(一)
|
5月前
|
前端开发 jenkins 持续交付
jenkins学习笔记之二十:docker in docker运行pipeline
jenkins学习笔记之二十:docker in docker运行pipeline
|
5月前
|
jenkins Java 持续交付
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
|
8月前
|
安全 Linux Docker
Ubantu docker学习笔记(六)容器数据卷
Ubantu docker学习笔记(六)容器数据卷
Ubantu docker学习笔记(六)容器数据卷
|
8月前
|
Kubernetes 调度 Docker
Ubantu docker学习笔记(十一)k8s基本操作
Ubantu docker学习笔记(十一)k8s基本操作
|
8月前
|
Prometheus 监控 Cloud Native
Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus
Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus
|
8月前
|
存储 应用服务中间件 nginx
Ubantu docker学习笔记(八)私有仓库
Ubantu docker学习笔记(八)私有仓库
|
8月前
|
网络协议 Docker 容器
Ubantu docker学习笔记(七)容器网络
Ubantu docker学习笔记(七)容器网络