第一部分:docker安装
Docker支持的Ubuntu的版本:
Ubuntu Trusty 14.01(LTS)(64-bit);
Ubuntu Recise 12.04 (LTS)(64-bit);
Ubuntu Raring 13.04 and Saucy 13.10 (64-bit);
Docker 安装前检查:
- 内核检查(内核3.1版本以上才行,否则需要升级)
uname -a
2.检查Device Mapper
ls -l /sys/class/misc/device-mapper
3、安装docker
sudo apt -get install docker.io (sudo是以普通用户身份调用管理者权限,没有管理者权限无法安装)
4、安装docker-ce 包
sudo apt -get install docker-ce
使用非root用户进行 组添加,用户添加 以保证普通用户正常使用docker命令
sudo groupadd dockername 创建docker用户组,组名自命名
sudo gpasswd -a ${user} dockername 添加普通用户到用户组
Sudo service docker restart
没添加用户组之前启动镜像:
Sudo docker run imagename echo ‘hello’ --成功启动时返回信息
添加之后
docker run imagename echo ‘hello’
第二部分:docker 架构介绍
基本命令介绍:
docker pull 从registery上拉取镜像
docker build 创建镜像
docker images 列出所有镜像
docker run -it image名称:版本号 #不写版本号默认是最后一个版本 交互模式调试时用,否则用静默模式
docker run -d --name image名称:版本号 #静默模式启动,容器重命名
docker run ${containerId} #运行container
docker ps #列出container
docker ps -a #列出所有container,包括停用的
docker ps |grep jekins #查找jekins
docker rm ${containerId} 删除container
docker rmi ${imageId} 删除image ,删除image之前要先删除container,否则报错
docker rmi -f ${imageId} #强制删除镜像,如果有container,先删除container再删除镜像
docker cp #在host和container之间拷文件
docker commit #保存改动为新的镜像
docker version #查看docker版本
docker exec -it cintainername bash #交互模式进入容器内脚本--容器就是简易化的操作系统,没界面 ,exit推出交互模式
docker run -d -p 9002:9001 --name eureka repository:5000/demo-service-eureka
##repository:5000 组名 demo-service-eureka 应用名
访问物理机时的请求,由此访问到虚拟机(容器)的9001端口---物理机和容器间的映射
-v 磁盘挂载,将容器中的配置文件挂载到物理机上防止丢失,两者之间数据同步。配置文件和日志等重要文件一般会使用这个命令。
-o 表示输出 将镜像保存成tar文件
import 将tar文件导入到另一个网络中进行安装部署、离线部署
dockerfile
使用案例:
将ngnix首页替换成自己写的页面:
docker cp index.html ${containerId}://usr/share/ngnix/html
docker stop ${containerId} 停止容器
docker commit -m ‘fun’ ${containerId} docker/test 将修改的镜像保存到docker/test 持久化
注释:每个image都有自己的id,由image运行得到container,每次运行都会得到一个容器,所以可能会有多个容器,每个容器也有自己的id。
第三部分:dockerfile构建镜像
命令介绍:
from base image
Run 执行命令
Add 添加文件
Copy 拷贝文件
Cmd 执行命令
Expose 暴漏端口
Workdir 指定路径
Maintainer 维护者
ENV 设定环境变量
ENTRYPOINT 容器入口
User 指定用户
Volume mount point
mkdir dockerfile 创建文件夹
touch dockerfile 创建文件
例1、dockerfile 文件内容:
touch index.html 创建文件
docker build -t dockerfile/test . 构建镜像
docker run -p 80:80 -d dockerfile/test 运行镜像产生容器
例2、制作skywalking镜像
第四部分:docker综合应用
- 如何将web项目部署到docker中
工具准备:
- 在docker 中安装tomcat镜像
- 在docker 中安装mysql镜像
- 本地准备好javaEE的war包---注意数据库链接得是虚拟机数据库ip地址
- JavaEE涉及到的sql文件
安装步骤:
- )在docker中安装tomcat
docker pull docker.io/tomcat
运行tomcat并测试
docker run -p 8080:8080 -d daocloud.io/tomcat ---tomcat默认端口8080,不能改
2.)将本地准备好的war包考到tomcat容器中的webapps里
docker cp 项目相对路径 ${tomcatContainerId}://usr/local/tomcat/webapps
3.)在docker中安装mysql镜像
docker pull docker.io/mysql
拉取镜像后创建mysql容器, -itd 允许后台运行
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
进入容器内部
docker exec -it mysql bash
使用MySQL:
mysql -uroot -p
use ${databaseName}
4.)javaEE涉及到的sql文件导入执行创建表和数据
2、springboot项目在docker中部署:
方案一:
1)引入插件
方案二:
在父工程的pom文件添加以下内容后执行maven、启动docker
第五部分:常用软件的docker安装