文章目录
初始化
参考
大数据实验室
使用Docker搭建Hadoop分布式集群
使用镜像搭建hadoop
centos7下安装参考
文档公约
安装docker
curl -fsSL https://get.docker.com/| sh
如果报错:Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
yum provides '*/applydeltarpm'
yum install deltarpm
如果之前安装过docker,再安装就会发生冲突,这时先查看当初安装的docker列表
yum list installed | grep docker
输出
[root@izuf63ogbm79z4tbul86e1z ~]# yum list installed | grep docker
docker-ce-cli.x86_64 1:18.09.8-3.el7 @docker-ce-stable
[root@izuf63ogbm79z4tbul86e1z ~]# yum -y remove docker-ce-cli.x86_64
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 docker-ce-cli.x86_64.1.18.09.8-3.el7 将被 删除
--> 解决依赖关系完成
......
然后删除对应的残留软件
yum -y remove docker-ce-cli.x86_64
然后再安装docker
docker加速配置
阿里云镜像加速器
配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://oarl7h79.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安装docker-compose
- 从docker寻找https://docs.docker.com/compose/install/#install-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 添加目录权限
sudo chmod +x /usr/local/bin/docker-compose
- 查看版本
docker-compose --version
基础命令
images
docker search [OPTIONS] TERM
删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
IMAGE就是要删除的镜像的名字
You can remove an image using its short or long ID, its tag, or its digest. If an image has one or more tags referencing it, you must remove all of them before the image is removed. Digest references are removed automatically when an image is removed by tag.
Container
查看所有容器
docker ps -a
没有-a就是运行中的容器
运行交互式容器
docker run -t -i -d --name hello docker.io/nginx /bin/bash
-d 守护态(Daemonized)
-t 让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
-i 让容器的标准输入保持打开
-p 80:80 表示将 docker container 的80 端口映射的主机的80 端口
–name 给容器起个别名
退出到宿主机
Ctrl + Q + P //让docker 在后台运行
Ctrl + D //关闭docker进程
进入已经运行的容器
docker exec -it web1 bash
web1是容器名字
docker start :启动一个或多个已经被停止的容器
docker stop :停止一个运行中的容器
删除容器
docker rm -f db01 db02
-f 强制删除 db01 ,db02 容器名字
有状态容器都有数据持久化需求。前一篇文章中提到过,Docker 采用 AFUS 分层文件系统时,文件系统的改动都是发生在最上面的容器层。在容器的生命周期内,它是持续的,包括容器在被停止后。但是,当容器被删除后,该数据层也随之被删除了。因此,Docker 采用 volume (卷)的形式来向容器提供持久化存储。Docker volume 有如下几种形态。
主机和宿主机文件交互
把文件从主机复制到容器里面
docker cp hello.html c0462d5e1878:/usr/share/nginx/html
docker exec -it c0462d5e1878 bash
挂载本地文件和容器中的文件
docker run -it \
-v /home/dock/Downloads:/usr/Downloads \
-v /home/dock/Downloads:/usr/Downloads web1 /bin/bash
-v 本机路径:容器路径 多个文件挂载多个-v
/bin/bash 是挂载并且启动交互式容器
查看container的volume和本地的挂载
docker inspect -f "{{.Mounts}}" web1
web1是容器名字
容器互联
docker run -itd \
--name web1 -p 80:80 \
--link mongo:mongo nginx
\
代表换行,在命令很长的时候使用
–link 连接的容器:容器的别名(alias)
查看环境变量
env
Dockerfile
执行dockerfile
一定要有点
docker build .
给镜像打tag
tag后面是镜像id
docker tag b86282a8ba4c node-demo:v1.0.1