-
Docker是什么?
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。运行中的这个镜像称为容器,容器启动是非常快速的。类似windows里面的ghost操作系统,安装好后什么都有了;
-
Docker核心概念
docker镜像(Images):Docker 镜像是用于创建 Docker 容器的模板。
docker容器(Container):容器是独立运行的一个或一组应用。
docker客户端(Client):客户端通过命令行或者其他工具使用
Docker API(https://docs.docker.com/reference/api/docker_remote_api)与 Docker 的守护进程通信
docker主机(Host):一个物理或者虚拟的机器用于执行Docker 守护进程和容器。
docker仓库(Registry):Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。
DockerHub(https://hub.docker.com) 提供了庞大的镜像集合供使用。
-
Docker安装
1)、安装虚拟机Linux系统
2)、安装docker:yum install docker
3)、启动docker:systemctl start docker
如果启动报错:Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
解决方法:
1.卸载docker:yum remove docker-*
2.更新Linux内核版本:yum update
3.然后重启虚拟机,重新装docker 启动
4)、设置开机启动:systemctl enable docker
5)、停止docker:systemctl stop docker
-
Docker镜像操作
1)、搜索:docker search mysql
2)、拉取:docker pull mysql
也可以拉取指定版本的镜像:docker pull mysql:5.5
3)、查询当前有多少镜像:docker images
4)、删除镜像:docker rmi d404d78aa797(IMAGE ID)
-
Docker容器操作
软件镜像————运行镜像————产生一个容器
更多命令操作:https://docs.docker.com/engine/reference/commandline/docker/
以Tomcat为例对容器进行操作
1)、搜索Tomcat镜像:docker search tomcat
2)、拉取镜像:docker pull tomcat
3)、运行:docker run --name mytomcat -d tomcat:latest
4)、查看运行的容器:docker ps
这里访问Tomcat是访问不到的。因为访问虚拟机的8080端口是访问不到docker的8080端口。需要作映射
端口映射的容器启动:docker run -d -p 8888:8080 tomcat
-d:后台运行
-p:将主机端口映射到容器端口 主机端口:容器端口
5)、停止运行中的容器:docker stop CONTAINER ID
6)、查看所有的容器:docker ps -a
7)、启动已经存在的容器:docker start 39e34738b13b(CONTAINER ID)
8)、删除停止的容器:docker rm 39e34738b13b(CONTAINER ID)
9)、查看启动日志:docker logs 5d3ba88636bb(CONTAINER ID)
-
Docker Mysql安装
1)、搜索mysql:docker search mysql
2)、拉取Mysql:docker pull mysql
3)、查看容器中的mysql镜像:docker images
4)、启动mysql:docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
-p:主机端口映射到容器端口
-e:设置参数
-d:后台运行
5)、远程工具连接即可
6)、进入mysql容器:docker exec -it bd990d0817f7(CONTAINER ID) bash
7)、还需要设置远程连接权限
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';