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