docker就像是手机的应用商店,有了应用商店,就不用自己一个app一个app(微服务开发所需要的中间件)去百度搜索下载,可以在应用商店里面一键下载(使用简单的docker命令即可)
总之就是一句话,docker pull 镜像名 拉取镜像
然后运行这个镜像就成了一个容器
docker中三个核心概念:
(1)镜像 Image 要安装的软件的源文件+这个软件运行需要的环境,去dockerhub搜索你想要的软件镜像(比如搜索nginx)
(2)容器 Container 容器是镜像运行时的实体,就像安装包被安装之后,运行时的运行程序,容器可以被创建,启动,停止,删除,暂停
(3)仓库 Repository 存放安装包(镜像)的仓库,用来保存镜像的地方
我们要做的就是从仓库中获取镜像,然后运行这个镜像成容器
docker的安装
-
清空原有组件残留(卸载旧版本)
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
2.设置docker仓库
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker. 安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
3.配置yum阿里镜像
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
4.安装docker docker-ce为社区免费版本(注意这一步虚拟机需要联网)
yum install -y docker-ce
5.关闭防火墙
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
6.启动和停止docker
systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
docker -v #查看docker版本
7.配置docker阿里镜像 更新docker对应的仓库,为阿里镜像,提升下载速度!
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://as08lme3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker命令
常用的命令其实都在这张图里面:
基本练习:拉取nginx镜像
https://hub.docker.com/search?q=nginx去这个网站搜索nginx
docker pul nginx:1.23(指定版本)
容器相关命令:
docker ps查看当前正在运行的容器(现在显然是没有容器正在运行的)
运行nginx镜像成容器(即启动容器)
docker run --name mynginx -p 80:80 -d nginx
--name 后面带的参数表示你给这个容器起的名字,比如这里就给这个容器起名 mynginx
-p后面带的参数表示 其他主机的端口号:这个容器占用的端口号
-d 后面带的参数表示本次要启动的镜像名 启动nginx镜像
此时再输入docker ps命令查看正在运行的容器,果然出现了mynginx这个容器:
你在浏览器中输入虚拟机的ip地址就可以访问到nginx页面了
使用docker安装一些软件 mysql,redis,rabbitmq,elasticsearch
(1)安装mysql
下载mysql镜像 : docker pull mysql
运行docker镜像:
docker run --name msql -v /msql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
查一下,果然容器msql正在运行
docker exec -it msql bash
继续执行连接命令 用户名和密码都是root
退出就是exit
(2)安装rabbitmq
拉取镜像 docker pull rabbitmq
启动镜像变成容器:(设置账号为root,密码为123456)
docker run \
-e RABBITMQ_DEFAULT_USER=root \
-e RABBITMQ_DEFAULT_PASS=123456 \
--name mq \
--hostname mq1 \
-p 15672:15672 \
-p 5672:5672 \
-d \
rabbitmq:3-management
外界访问rabbitmq,服务器的ip地址:15672
输入账号密码即可
(3)安装redis
拉取镜像docker pull redis
启动容器:
docker run --name myredis -p 6379:6379 -d redis redis-server --appendonly yes
# 创建和启动容器
redis-server --appendonly yes 设置持久化手段
docker exec -it myredis redis-cli