文章目录
市面使用情况
理解
基于linux容器的 环境,类似于虚拟机,方便部署
用途
特点
好处开发同一份镜像
镜像images
分层,在别人的镜像基础上做修改
容器
写在最上层,下面都是只读
仓库
hub.docker.com
https://c.163.com/hub#/m/home/
centos7.6
Linux
// 查看系统版本号
[root@hadoop01 ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
// 用root账户登录进去
// 配置国内yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
//卸载旧版本
//较旧的Docker版本称为docker或docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
//更新yum
yum check-update
yum update
//安装所需的软件包
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
//使用以下命令来设置稳定的存储库。
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
//查看docker版本
yum list docker-ce --showduplicates | sort -r
//安装指定的版本
sudo yum install docker-ce docker-ce-cli containerd.io
yum install docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io
//Docker 是服务器----客户端架构。命令行运行docker命令的时候,需要本机有 Docker 服务。用下面的命令启动
systemctl start docker
//安装完成后,运行下面的命令,验证是否安装成功。
docker version
或者
docker info
第一个docker容器
拉取、查看镜像
//查看当前镜像
docker images
//拉取hello-world镜像
docker pull hello-world
//运行一个镜像,镜像会创造实例容器,通过容器返回流数据给客户端
docker run hello-world
Nginx下载
前台、后台的运行
// 拉取网易镜像https://c.163yun.com/hub
docker pull hub.c.163.com/library/nginx:1.13.0
//验证当前镜像
docker images
//运行时必须制定版本号,不然拉取最新
docker run hub.c.163.com/library/nginx:1.13.0
//查看当前正在运行的容器(比如前台运行那种)
docker ps
//ctrl+c停止前台运行(docker stop 容器id)
//重新,后台运行镜像,创建容器
docker run -d hub.c.163.com/library/nginx:1.13.0
访问到容器内部
//一般访问到容器内部都是通过命令行(shell)
//将容器映射到当前终端shell(启动容器 编号可以写缩写)
[root@hadoop01 ~]# docker exec -it be2 bash
root@be28d0664f17:/#
//查看nginx所在位置
root@be28d0664f17:/# which nginx
/usr/sbin/nginx
三种网络模式
桥接
主机
没有
访问到docker内部的ngnix->端口映射
//启动指定端口的本机->容器的映射
docker run -d -p 8080:80 hub.c.163.com/library/nginx:1.13.0
//验证端口的映射输出
docker ps
0.0.0.0:8080->80/tcp
//验证本机端口处于监听中
[root@hadoop01 ~]# netstat -na|grep 8080
tcp6 0 0 :::8080 :::* LISTEN
//当-P时大写,端口会自动映射。问题是不固定
docker run -d -P hub.c.163.com/library/nginx:1.13.0
//验证
docker ps
0.0.0.0:49153->80/tcp
//文件名约定俗成
[root@hadoop01 ~]# touch Dockerfile
[root@hadoop01 ~]# vim Dockerfile
// vi 文件
FROM alpine:latest
MAINTAINER bennyrhys
CMD echo 'hello my dockerfile'
//docker编译文件
docker build -t hello_docker .
//查看已自定义的docker文件
docker images
//运行docker
[root@hadoop01 ~]# docker run hello_docker
hello my dockerfile
rabbitmq
#指定版本,该版本包含了web控制页面
docker pull rabbitmq:management
#方式一:默认guest 用户,密码也是 guest
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management
#方式二:设置用户名和密码
docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management
# 验证
http://localhost:15672/