安装
安装docker (NAT模式-联网)
1、yum 在线安装
yum install docker -y
2、启动docker
systemctl start docker 启动
systemctl stop docker 停止
systemctl restart docker 重启
3、查看docker状态
systemctl status docker
docker的使用流程
docker的使用流程
1.配置docker镜像加速
2.从docker仓库下载镜像到宿主机 docker仓库地址:https://hub.docker.com/
3.通过镜像启动生成容器环境
1.配置镜像加速
默认情况下,从docker hub(https://hub.docker.com/)上下载docker镜像太慢。一般都会配置镜像加速器:
- 中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)
- 阿里云镜像加速器
- 网易云镜像加速器
- 腾讯云镜像加速器
修改文件并配置
在linux中打开:/etc/docker/daemon.json文件,并导入镜像地址
直接 vi /etc/docker/daemon.json
#中科大镜像地址
{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
重新启动docker–docker相关的命令
#重启
systemctl restart docker
#查看docker信息
docker info
#启动docker服务:
systemctl start docker
#停止docker服务:
systemctl stop docker
#重启docker服务:
systemctl restart docker
#查看docker服务状态:
systemctl status docker
#设置开机启动docker服务:
systemctl enable docker
2.从docker仓库下载镜像到宿主机–镜像相关的命令
#1 查看镜像: 查看本地所有的镜像
docker images
#2 搜索镜像:从网络中查找需要的镜像
docker search 镜像名称
#3 拉取镜像:从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号
如果版本号不指定则是最新的版本。如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。
地址:https://hub.docker.com/
docker pull 镜像名称:版本号 / docker pull 镜像名称(默认的版本号是latest)
docker pull mysql:5.7 / docker pull mysql
#4 删除镜像: 删除本地镜像
docker rmi 镜像id # 删除指定本地镜像
3.通过镜像启动生成容器环境–容器相关命令
#查看容器
docker ps # 查看正在运行的容器
docker ps -a #查看所有容器,包括未运行的容器
#创建并启动容器
docker run -id --name=自定义容器名称 -p 映射端口:镜像端口 镜像名称
run:启动
-id/-di: 创建容器
--name: 为创建的容器起别名
-p: 端口映射
#停止容器
docker stop 容器名称
#删除容器(容器是停止状态才能删除)
docker rm 容器名称
#启动容器
docker start 容器名称
3.创建docker镜像容器
Nginx
创建nginx的docker容器
命令:docker run -di --name=mynginx1 -p 81:80 nginx
执行完后如果会出现以下信息,那么需要设置一下网络配置
解决办法:
#编译配置文件
vi /etc/sysctl.conf
#在末尾添加这段代码
net.ipv4.ip_forward=1
#重启network服务
systemctl restart network
#重启docker(容器就关闭了)
systemctl restart docker
#启动容器
docker start 容器名称
MySql
创建mysql的docker容器
命令:docker run -di --name=mymysql1 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
数据卷
数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定后,对方的修改会立即同步,一个数据卷可以被多个容器同时挂载,一个容器也可以挂载多个数据卷。
作用:容器数据持久化、容器之间数据交换
配置数据卷
创建启动容器时,使用 –v 参数 设置数据卷
#启动容器,挂载数据卷 注意冒号前后不能有空格
docker run … –v 宿主机目录(文件):容器内目录(文件) …
#先在root目录先创建一个文件夹 ,因为要做数据卷映射
cd ~
mkdir data
#启动容器,挂载数据卷
docker run -di --name=自定义容器名称 -p 33307:3306 -v /root/data/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
查看mysql的日志会发现有权限不足的问题:docker logs my_mysql
–privileged :容器内的root拥有真正的root权限.否则,容器内的root只是外部的一个普通用户权限
docker run -id --name=mymysql888 --privileged=true -p 33308:3306 -v /root/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
删除当前数据库容器
#先停止
docker stop my_mysql
#再删除
docker rm my_mysql
tomcat
需求: 在Docker容器中部署Tomcat,并通过外部机器访问Tomcat部署的项目。
创建启动容器
docker run -di --name=mytomcat1 -p 8081:8080 tomcat:8.5
问题:发现访问不到页面
查看tomcat容器所在的目录
docker exec -it mytomcat1 /bin/bash
发现webapp下没有任何页面
#退出
exit
将前端页面放入数据卷中(/root/webapps) 进行挂载
docker run -id --name=mytomcat1 --privileged=true -v /root/webapps:/usr/local/tomcat/webapps -p 8081:8080 tomcat:8.5
直接把要部署的资源直接放到宿主机的 /root/webapps文件夹中即可
Redis
创建启动容器
docker run -di --name=myredis1 -p 63779:6379 redis