首页 > 技术文章 > docker的安装和使用

ShiningArmor 2020-06-15 15:54 原文

1.docker是什么
Docker是一个开源的轻量级应用容器引擎;
 
docker的作用:
     Docker支持将软件编译成一个镜像;
    然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;
 
什么是镜像:
例如:原生的windows系统中不带第三方软件;
每次装新系统必须安装一些常用软件;
为了方便,可以将windows系统做成镜像文件,镜像中安装好了一些常用软件;
装系统时直接装镜像,就不需要再自己安装这些软件了;
 
 
docker镜像:
在部署javaweb项目时,需要用到MySql、Tomcat等;
可以把这些常用的工具做成Docker镜像,这样就不需要每次都安装了;
 
2.核心概念
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker客户端(Client):连接docker主机进行操作;
docker仓库(Registry):用来保存各种打包好的软件镜像;
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
 
使用Docker的步骤:
1)、安装Docker
2)、去Docker仓库找到这个软件对应的镜像;
3)、使用Docker运行这个镜像,这个镜像就会生成一个Docker容器; 
4)、对容器的启动停止就是对软件的启动停止;
 
docker的公共仓库地址:https://hub.docker.com/
公共仓库是docker官方提供的一些常用镜像仓库,也可以搭建自己的本地仓库;
例如需要使用mysql时:
    1】从公共仓库拉取mysql镜像到本地仓库;
    2】使用docker命令运行mysql镜像,会启动一个mysql容器;
    3】mysql会在mysql容器中运行;
如果需要同时运行5个tomcat:
    1】下载tomcat镜像到本地;
    2】用docker运行5次tomcat镜像,会启动5个tomcat容器,各个tomcat在自己的容器中运行;
    3】容器是沙箱机制互不干扰;
 
3.安装Docker
1】检查内核版本,必须是3.10及以上
uname ‐r
2】安装docker
yum install -y docker
3】启动docker
systemctl start docker
查看是否启动成功
docker ‐v
Docker version 1.12.6, build 3e8e77d/1.12.6
4】开机启动docker
systemctl enable docker
Created symlink from /etc/systemd/system/multi‐user.target.wants/docker.service to
/usr/lib/systemd/system/docker.service.
5】停止docker
systemctl stop docker
 
4. 常用命令&操作
官方文档地址:
https://docs.docker.com/engine/reference/commandline/docker/
 
1) 镜像操作
 
1】从公共仓库中搜索镜像
docker search 镜像名
例如:搜索mysql
可以找到多条相关的镜像信息;
以第一条为例:
    docker.io    ->镜像的索引
    docker.io/mysql    ->镜像名,主要看斜杠后面的部分
    DESCRIPTION    ->镜像的描述信息
    9570    ->镜像的关注度,以k为单位,表示9570k个人关注了这个镜像    
    OFFICIAL    ->如果是[ok]表示该镜像是官方发布的镜像,官方发布的镜像没有做自定义配置
    AUTOMATED    ->如果是[ok]表示改镜像是自动构建的,也就是这个镜像一运行就自动配置好了    
 
2】从公共仓库下载镜像到本地
docker pull 镜像名
镜像名可以用docker search命令得到;例如mysql镜像全名为:docker.io/mysql;也可以简写为mysql; 
版本:
    可以在镜像名后面加上标签用来选择不同的版本(mysql:5.5);
    默认标签为latest,表示最新版本;
 
3】查看本地镜像
命令:
docker images
可以看到pull下来到本地的镜像:
例如:第一条本地镜像mysql
    镜像名为docker.io/mysql;
    版本为最新;
    镜像id为30f937e841c8;
    镜像创建时间为11天以前;
    镜像大小为541m;
 
2)容器操作
根据镜像启动容器:
docker run ‐‐name mytomcat ‐d tomcat:latest
 
查看运行中的容器:
docker ps
 
停止运行中的容器:
docker stop 容器的id
 
查看所有的容器:(运行中的和停止的)
docker ps -a
 
根据id启动容器:
docker start 容器id
 
删除容器:(容器要是停止状态)
docker rm 容器id
 
启动时附加端口映射:
    如果不加端口映射,无法通过ip:port访问tomcat;
    因为8080是tomcat容器的端口,而不是主机的端口;
    如果想访问tomcat容器的8080端口,必须将其映射到主机的端口,这样就可以通过“主机ip:映射端口”来访问tomcat容器中运行的tomcat了;
docker run ‐d ‐p 8888:8080 tomcat
‐d:后台运行
‐p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
 
查看日志:
docker logs container‐name/container‐id
 
5.docker启动mysql
mysql启动时的注意事项:
    1】端口映射
    2】用-e带上参数root密码
docker run ‐p 3306:3306 ‐‐name mysql02 ‐e MYSQL_ROOT_PASSWORD=123456 ‐d mysql
 
把主机的/conf/mysql文件夹挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面
    作用是将主机的mysql配置文件与容器中的mysql配置文件合并
docker run ‐‐name mysql03 ‐v /conf/mysql:/etc/mysql/conf.d ‐e MYSQL_ROOT_PASSWORD=123456 ‐d mysql:tag
 
指定mysql的一些配置参数
docker run ‐‐name some‐mysql ‐e MYSQL_ROOT_PASSWORD=my‐secret‐pw ‐d mysql:tag ‐‐character‐set‐server=utf8mb4 ‐‐collation‐server=utf8mb4_unicode_ci
    
 
 
 
 
 
 
 

推荐阅读