Docke
Docker是基于Go语言实现的开源容器项目。它诞生于2013年年初,最初发起者是dotCloud公司。Docker自开源 后受到业界广泛的关注与参与,目前已有80多个开源组件,逐渐形成了围绕Docker容器的完整的生态体系。 dotCloud公司于2013年年底改名为Docker Ioc,专注于Docker相关技术和产品的开发,目前已经成为全球最大的 Docker容器服务提供商。官方网站为:docker.com
docker的优势
1.轻量化和快速部署:Docker容器是轻量级的,可以在几秒钟内启动和停止,Docker更加节省资源,可以快速部署和扩展
2.跨平台和可移植性:Docker可以在不同的操作系统和平台上运行,包括Linux、Windows和Mac等
3.高效的资源利用:Docker使用容器化技术,可以将应用程序及其依赖项打包到一个独立的容器中。这样可以 避免不同应用程序之间的冲突,并且可以更好地利用服务器的资源。
4.简化的管理和维护:Docker提供了一套简单易用的命令行工具和API,可以方便地管理和维护容器。开发人员 可以使用Docker镜像来构建和发布应用程序,系统管理员可以使用Docker容器来隔离和管理不同的服务。
5.可靠性和安全性:Docker容器提供了隔离的运行环境,可以确保应用程序之间的互不干扰。同时,Docker还 提供了一些安全机制,如命名空间和控制组,可以限制容器的资源使用和访问权限,提高应用程序的安全 性。
下载docker
在下载docker之前需要做一些准备工作
首先需要将防火墙关闭,并且取消自启动
systemctl disable --now firewalld
关闭dnsmasq,并取消开启自启动
systemctl disable --now dnsmasq
关闭NetworkManager,并取消自启动,如果是centos8就不需要进行这步操作了
systemctl disable -- now NetworkManager
关闭seliux
setenforce 0
sed -i 's/endorcing/disabled/' /etc/selinux/config
临时停止关闭swap
swapoff -a && sysctl -w vm.swappiness=0
进入 /etc/fstab文件夹
注释掉/dev/mapper/centos-swap swap swap defaults 0 0
安装docker
先将yum包更新到最新状态
yum update
安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker,出现输入的界面都按y,在这里没有设置版本就默认为最新版本
yum install -y docker-ce
查看docker'版本,验证是否成功
docker -v
接着要获取一个阿里云(别的也可以,在这里用阿里云举例)的镜像.地址是:
在登录之后就会有一个ip,要将你的ip添加在/etc/docker/daemon.json中
{
"registry-mirrors": ["https://你的ID.mirror.aliyuncs.com"]
}
docker相关命令
启动docker
systemctl start docker
停止docker
systemctl stop docker
重启docker
systemctl restart docker
设置开机自启动
systemctl enable docker
镜像相关命令
查看镜像
docker images
搜索镜像
docker search
拉取镜像
docker pull
删除镜像
docker rmi 镜像名称
docker rmi -f 镜像名称(强制删除)
容器相关命令
查看容器
查看正在进行的容器
docker ps
查看所有容器
docker ps -a
创建并启动容器
docker run 参数
创建守护式容器:
docker run -id --name=c2 centos:7
交互式容器会在exit后容器自动关闭,守护式容器不会
进入容器
docker exec -it c2 /bin/bash
停止容器
docker stop 容器名称
启动容器
docker start 容器名称
删除容器
需要先停止容器才能删除
docker rm 容器名称
docker rm -f 容器名称 (强制删除容器)
查看容器信息
docker inspect 容器名称
退出容器
exit
卸载docker
查看yum安装的docker文件包
yum list installed |grep docker
查看docker相关的rpm源文件
rpm -qa |grep docker
删除相关服务
yum -y remove xxx
docker应用部署
如何用docker部署mysql
先拉取mysql的镜像文件
docker pull mysql:5.7
创建容器,端口映射和目录映射
docker run -d --name=c_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=dn mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e MYSQL_ROOT_PASSWORD=123456 //表示设置root的密码为123456
-e MYSQL_DATABASE=dn //创建mysql数据库容器的同时初始化创建一个数据库 dn
进入容器操作mysql
开启mysql
docker exec -it c_mysql /bin/bash
登录mysql
mysql -uroot -p
修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新权限
flush privileges
docker容器的数据卷
数据卷是宿主机中的一个目录或者文件,数据卷的数据和主机是同步的,一个数据卷可以被多个容器挂载,一个容器也可以挂载多个数据卷
数据卷的作用
容器数据持久化
外部机器和容器间接通信
容器之间数据交换
配置数据卷容器
拉取一个镜像
docker pull centos:7
创建启动c3数据卷容器,使用 –v 参数 设置数据卷
docker run –it --name=c3 –v /volume centos:7 /bin/bash
这里没有指定宿主机目录,默认生成一个宿主机目录
docker inspect c3 (查看c3)
创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷
docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash
代码如图: