Docker是怎么产生的呢?mysql
——运维人员的苦:每次部署都很烦,须要安装jdk,各类驱动等等sql
——这时,Docker应运而生docker
说明:
1 HOST:Docker宿主机
安装Docker,并运行Decker Daemon。
2 Decker Daemon是Docker守护进程。用户经过Docker client(docker命令)和Docker daemon交互。
3 Registry:Docker Cloud公司提供的标准,注册服务。复制代码
一个镜像能够建立多个容器,镜像跑起来就是容器。容器直接是相互隔离的tomcat
举个例子:bash
tomcat镜像文件,
经过docker run -> 建立成一个running状态
经过docker create -> 变成已建立状态 -> docker start -> 启动 running状态
running状态 有不少操做,容器变成中止状态,并无删除。
docker rm 才是真正销毁
docker两种机制:
内存溢出 容器变成stopped
容器没有主进程 容器变成stopped复制代码
yum install docker-ce -y
docker version #安装完成以后,查看一下复制代码
以tomcat镜像为例
架构
1 docker search tomcat #从hub.docker网站查找镜像
2 docker pull tomcat # 拉去tomcat镜像包到本地。 默认最新lastest
3 docker image ls #查看本地有的镜像
4 docker rmi -f 镜像名or镜像ID:TAG #TAG 版本号
5 docker container inspect 容器名or容器ID #获取镜像详细信息
6 docker run --name 容器名 -d -p 宿主端口:容器端口 tomcat 复制代码
1 docker container ps #host正在运行的容器。容器必须有一个app在运行2 docker logs 容器名
3 curl 容器IP:容器端口 #内部访问
4 http://宿主ip:宿主端口 #外部访问
5 docker exec -it 容器名or容器ID /bin/bash #进到容器内部操做复制代码
docker search mysql
docker pull mysql
docker image ls
docker run --name mysql -d -p 6666:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7
docker container exec -it mysql /bin/hash
配置mysql参数——经过挂载技术
find / -name "*mysql" #找到mysql log文件
exit #退出容器
docker container inspect mysql #查看mysql 容器信息
#建立文件夹mys:配置文件,数据,日志
mkdir -p /mys/mysql/conf
mkdir -p /mys/mysql/data
mkdir -p /mys/mysql/log
#文件复制到mys
docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf /mys/mysql/conf
#修改mys中配置文件 mysqld.cnf 文件,设置字符集等
docker rm -f mysql
#挂载,镜像run
docker run --name mysql -d -p 6666:3306 -v /mys/mysql/conf:/etc/mysql/mysql.conf.d/ -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7复制代码
从容器访问mysqlapp