CentOS中Docker的使用
一、Docker是什么?
Docker是一个开源的应用容器引擎, 基于Go语言并遵从Apache2.0协议开源.
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中, 然后发布到任何流行的Linux机器上, 也可以实现虚拟化.
容器是完全使用沙箱机制, 相互之间不会有任何接口, 更重要的是容器性能开销极低.
Docker支持将软件编译成一个镜像; 然后再镜像中各种软件做好配置, 将镜像发布出去, 其他使用者可以直接使用这个镜像. 运行中的这个镜像称为容器, 容器启动时非常快速的.
二、Docker核心概念
docker 主机(Host): 安装了Docker程序的机器(Docker直接安装在操作系统上的).
docker 仓库(Registry): Docker仓库用来保存镜像, 可以理解为代码控制中心的代码仓库.
docker 镜像(Image): Docker镜像是用于创建Docker容器的模板.
docker 容器(Container): 容器是独立运行的一个或一组应用.
docker 客户端(Client): 客户端通过命令行或者其他工具使用Docker.
Docker的使用步骤:
(1) 安装Docker
(2) 去Docker仓库找到这个软件对应的镜像
(3) 使用Docker运行这个镜像, 这个镜像就会生成一个Docker容器
(4) 对容器的启动停止就是对软件的启动停止
三、安装Docker
(1) 安装Linux虚拟机
(2) 在Linux虚拟机上安装Docker
查看CentOS版本
Docker要求CentOS系统的内核版本高于3.10
[root@instance-0pk09gjj ~]# uname -r
升级软件包及内核
[root@instance-0pk09gjj ~]# yum update
安装Docker
[root@instance-0pk09gjj ~]# yum install docker
启动Docker
[root@instance-0pk09gjj ~]# systemctl start docker
查询Docker的版本号
[root@instance-0pk09gjj ~]# docker -v
开机启动Docker
[root@instance-0pk09gjj ~]# systemctl enable docker
停止Docker
[root@instance-0pk09gjj ~]# systemctl stop docker
重启Docker
[root@instance-0pk09gjj ~]# systemctl restart docker
Docker默认安装路径
[root@instance-0pk09gjj lib]# cd /var/lib/docker/
四、常用操作
1、镜像操作
查询镜像的地址: https://hub.docker.com/
检索mysql
[root@instance-0pk09gjj ~]# docker search mysql
安装mysql
[root@instance-0pk09gjj ~]# docker pull mysql:5.5
查看所有的镜像
[root@instance-0pk09gjj ~]# docker images
删除镜像
[root@instance-0pk09gjj ~]# docker rmi image-id 2b8e987317d9
2、容器操作
软件镜像 ----- 运行镜像 ----- 产生一个容器(正在运行的软件)
(1) 搜索镜像
[root@instance-0pk09gjj ~]# docker search tomcat
(2) 拉取镜像
[root@instance-0pk09gjj ~]# docker pull tomcat
(3) 根据镜像启动容器
[root@instance-0pk09gjj ~]# docker run --name mytomcat -d tomcat:latest
(4) 查看运行的容器
[root@instance-0pk09gjj ~]# docker ps
(5) 停止运行中的容器
[root@instance-0pk09gjj ~]# docker stop cc614f43ddd2
(6) 查看所有的Docker容器
[root@instance-0pk09gjj ~]# docker ps -a
(7) 启动容器
[root@instance-0pk09gjj ~]# docker start cc614f43ddd2
(8) 删除容器
[root@instance-0pk09gjj ~]# docker rm cc614f43ddd2
(9) 启动一个做了端口映射的tomcat
[root@instance-0pk09gjj ~]# docker run --name mytomcat -d -p 8888:8080 tomcat:latest
(10) 查看容器日志
[root@instance-0pk09gjj ~]# docker logs e309ecf1a2b4
(11) 生成mysql容器
[root@instance-0pk09gjj ~]# docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 mysql:5.7
3、进入mysql容器
[root@instance-0pk09gjj ~]# docker exec -it 5dc53d40a95a bash
登录mysql
root@5dc53d40a95a:/# mysql -uroot -proot
创建用户(用户:admin,密码:admin)
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
给用户赋权限(所有权限)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin';