docker实战 (3) 常规配置
本节会持续更新,在项目实战中遇到的docker配置都会更新进来
docker常用命令:
docker 介绍:
what: 是什么
why: 为什么用
how: 怎么用 docker 特点: 轻量级,可移植,占用资源少 # 下载镜像
docker pull mysql:5.6
# 启动镜像
docker run -p : --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD= -d mysql:5.6 docker 基础命令:
镜像
docker version | docker -v
docker pull 镜像名称
docker images | docker image ls
docker search xxxx
docker rmi xxxx -f 强制删除 容器:()
docker run -d(后台运行) -p : -p (可以指定多个ip) 镜像
docker logs -f xxx_id 查询日志 继续监听
docker container logs xxx 查询日志 查询出所有日志
docker ps 查询正在运行的容器
docker ps -a 查询所有容器(包括停止的容器)
docker exec -it xxx /bin/bash 进入容器
docekr stop xxx 停止启动的容器:
docker start xxx 启动刚刚停止的容器
docker rm xxx 删除容器(非运行) -f 强制删除
docker kill xxx 强制停止容器
docker -e 设置参数(-e MYSQL_ROOT_PASSWORD=)
镜像构建:(一般使用DockerFile进行构建)
docker build -t 构建镜像名 . (.代表DockerFile的所在路径)
DcokerFile:
FROM 基础镜像:
RUN
hu@
docker的远程访问设置:
1> 修改 /usr/lib/systemd/system/docker.service
注意: 如果是centos7:就是如上配置:centos6 : ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
2> 保存配置文件,重新加载
systemctl daemon-reload
3> 重启服务 systemctl docker start | restart | stop
docker pull指令失败问题:
1>因为镜像源需要翻墙,导致无法从中心库下拉镜像。我们可以通过修改成国内镜像仓库来进行下拉镜像 修改 /etc/docker/daemon.json
注意:常用的国内镜像源还有:
https://docker.mirrors.ustc.edu.cn
https:
//hub-mirror.c.163.com
docker 启动相差8小时问题:
1> 启动是设置时区
docker run -itd -v /mnt/upload:/mnt -v /etc/localtime:/etc/localtime:ro -v /data/appLogs:/var/log -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai -p : -p : docker_image_id /bin/bash
2> 在Dockerfile 文件中设置:
From java:
MAINTAINER huhy
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
VOLUME /tmp
ADD tranQueue.jar newfiber_project_queue.jar
ENTRYPOINT ["java","-jar","newfiber_project_queue.jar"]
docker容器动态添加端口映射:
第一种修改方法: iptables 命令进行修改
1: 查询容器的ip:
docker inspect <container name or id>| grep IPAddress
2: 查看Container的映射的端口
docker port <container name or id>
3: 用iptables查看容器映射情况
iptables -t nat -nvL
iptables -t nat -nvL --line-number
4: 查询现有docker 容器映射列表
iptables -t nat --list-rules DOCKER
5: 添加端口映射
a, 获取容器ip
docker inspect $container_name | grep IPAddress
b. 添加转发规则
iptables -t nat -A DOCKER -p tcp --dport $host_port -j DNAT --to-destination $docker_ip:$docker_port
将容器的8000端口映射到docker主机的8001端口
iptables -t nat -A DOCKER -p tcp –dport 8001 -j DNAT –to-destination 172.17.0.19:8000
6: 删除端口映射规则
a. 获取规则编号
iptables -t nat -nL --line-number
b. 根据编号删除规则
iptables -t nat -D DOCKER $num
7: 保存iptables规则
iptables-save
注意:端口映射完毕后,端口映射也不会显示出来,不能通过docker port [container_name|container_id]查询到结果
第二种修改方法: 修改配置文件进行修改
1> 找到对应容器:
2> 停止容器, 停止服务 (systemctl stop docker/service docker stop)
3> 修改 /var/lib/docker/containers/{容器 ID+ 一些字符串}/hostconfig.json 中
同时修改同目录下的 config.v2.json 中 "ExposedPorts":{"容器端口 /tcp":{}}
4> 在容器运行时添加映射
5> 重启服务, 启动容器 (systemctl start docker/service docker start)
docker实战 (3) 常规配置的更多相关文章
- Ubuntu Server下docker实战 02: docker进阶配置
在上一篇文章里<Ubuntu Server下docker实战 01: 安装docker>,我们已经把docker安装起来了,并运行了一个hello-world 这一篇,我们继续讲进阶配置. ...
- Docker实战之Redis-Cluster集群
概述 接上一篇Docker实战之MySQL主从复制, 这里是Docker实战系列的第二篇,主要进行Redis-Cluster集群环境的快速搭建.Redis作为基于键值对的NoSQL数据库,具有高性能. ...
- Docker实战之Consul集群
前言 最近参加了几场 Java 面试,发现大多数的微服务实践还是 Eureka 偏多,鉴于笔者的单位选型 Consul,这里对 Consul 做简单总结. 该篇是 Docker 实战系列的第三篇.传送 ...
- Docker实战之Zookeeper集群
1. 概述 这里是 Docker 实战系列第四篇.主要介绍分布式系统中的元老级组件 Zookeeper. ZooKeeper 是一个开源的分布式协调服务,是 Hadoop,HBase 和其他分布式框架 ...
- Docker实战 | 第二篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试
一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...
- Docker实战 | 第四篇:Docker启用TLS加密解决暴露2375端口引发的安全漏洞,被黑掉三台云主机的教训总结
一. 前言 在之前的文章中 IDEA集成Docker插件实现一键自动打包部署微服务项目,其中开放了服务器2375端口监听,此做法却引发出来一个安全问题,在上篇文章评论也有好心的童鞋提示,但自己心存侥幸 ...
- Cordova - 使用Cordova开发iOS应用实战1(配置、开发第一个应用)
Cordova - 使用Cordova开发iOS应用实战1(配置.开发第一个应用) 现在比较流行使用 html5 开发移动应用,毕竟只要写一套html页面就可以适配各种移动设备,大大节省了跨平台应用的 ...
- handsontable常规配置的中文API
常规配置: 1.固定行列位置 fixedRowsTop:行数 //固定顶部多少行不能垂直滚动 fixedColumnsLeft:列数 //固定左侧多少列不能水平滚动 2.拖拽行头或列头改变行或列的大小 ...
- Docker remote API简单配置使用
1.启动docker remote API的方式如下: docker -d -H uninx:///var/run/docker.sock -H tcp://0.0.0.0:5678 2.但是为了伴随 ...
随机推荐
- -[UITableView copyWithZone:]: unrecognized selector sent to instance 0x7XXXXXX00
-[UITableView copyWithZone:]: unrecognized selector sent to instance 0x7XXXXXX00 -[Class copyWithZon ...
- (转)plsql11 x64 安装和配置 解决OCI: not initialized
跟帖子一样,安装了pl/sql ,设置了oci.dll 以及 TNS_ADMIN,加入path后不能显示数据库连接. 安装 microsoft visual c++ redistributable 2 ...
- 列表初始化 分析initializer_list<T>的实现
列表初始化(1)_统一初始化 1. 统一初始化(Uniform Initialization) (1)在C++11之前,很多程序员特别是初学者对如何初始化一个变量或对象的问题很容易出现困惑.因为可以用 ...
- IDEA强制清除Maven缓存
目录 重新导入依赖的常见方式 存在的问题 彻底清除IDEA缓存的方式 重新导入依赖的常见方式 下面图中的刷新按钮,在我的机器上,并不能每次都正确导入pom.xml中写的依赖项,而是导入之前pom.xm ...
- Oracle树形结构查询(递归)
引用:https://blog.csdn.net/u012615705/article/details/78321022 文章转自上述地址,内部有稍许改动,如有需要请查看原文. oracle树状结构 ...
- Android studio配置国内镜像源
Android studio配置国内镜像源 不使用镜像也是可以的,据说谷歌在中国搭建了服务器 如果直接使用有问题,不妨使用镜像试试.有自动探测代理配置和手动代理配置. https://blog.csd ...
- excel 去掉 空单元格
Excel 2003 选中这一列,定位(CTRL+G)--定位条件--空值--确定--右键--删除. 1. 然后进行全选已输入的内容,可以使用鼠标拖动已输入的内容,也可以使用快捷键全选内容,按住ctr ...
- SQLite数据库简介和使用
一.Sqlite简介: SQLite (http://www.sqlite.org/),是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中 ...
- zookeeper实现的分布式锁
在分布式系统中,多个jvm对共享资源进行操作时候,要加上锁,这就是分布式锁 利用zookeeper的临时节点的特性,可以实现分布式锁 public class ZookeeperDistrbuteLo ...
- Jenkins+gitlab+msbuild
配置gitlab 这里会生成一个token在页面上方,一定要复制出来.存在别的地方. jenkins配置gitlab 在jenkins服务器上安装vs,目的是使用它的msbuild,如果项目中还用到了 ...