docker镜像加速器
1、访问阿里云主页:aliyun.com
2、搜索“容器镜像服务”
3、点击镜像加速有具体操作文档
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’ //默认加载文档
{
“registry-mirrors”: [“https://covtb9ad.mirror.aliyuncs.com”]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
——————————
docker基本概念
1、以计算机为例:物理机-》docker-》应用程序
2、dockerclient->restApi->dockerDeamon
3、docker镜像,docker容器,registry
4、基本执行流程:docker build ;docker pull;docker run
docker常用命令
docker pull 镜像名<:tag> //拉取镜像没有写tag,就会用latest使用的最多的
docker run 镜像名<:tag> //运行创建的的镜像
docker ps //查看运行的镜像
docker rm <-f> 容器id //删除容器
docker rmi <-f> 镜像名<:tag> //删除镜像
查看有哪些可以用的dockerImages 就去dockers中央仓库(地址:hub.docker.com)找
————————
docker宿主机与容器通信
docker run tomcat -p 8000:8080 ----前面是宿主机端口:后面是docker容器中应用的端口
查看容器内部命令:docker exec -it 容器id /bin/bash
创建镜像文件:
docker build - t 机构/镜像名<:tags> Dockerfile目录
tags如果不写,默认least
Dockerfile常用命令:
FROM tomcat:latest 表示从哪个镜像开始,用于在原有镜像上进行扩展
MAINTAINER mashibing.com //表示哪个机构维护
表示切换工作目录,不存在则创建
#相当于 cd /usr/local/tomcat/webapps
WORKIR /usr/local/tomcat/webapps //设置工作目录
#复制目录小的所有文件到容器目录下
ADD docker-web ./docker-web 将指定文件放到指定目录下
docker build -t 公司网站/镜像名<:tag> Dockerfile目录 .代表当前目录
运行镜像:
docker run -d -p 8001:8080 mashibing.com/mywebapp:1.0
——————————————————————————————————————
镜像分层概念:就是构建docker镜像是,每执行一个命令就会形成一个临时
镜像,每次都根据,临时容器,镜像进行叠加的
——————————————————————————————
FROM-基于基准镜像
FROM centos //制作基准镜像(用官方提供的基本镜像)
LABEL & MAINTAINER - 信息说明
WORKDIR -设置工作目录(会自动创建文件)(尽量使用绝对路径)
ADD &-COPY-复制文件
ADD hello / #复制到根路径下
ADD test.tar.gz / #添加更目录并解压
ADD 除了复制,还具备添加远程文件功能
ENV -设置环境常量
————————————————
RUN &CMD&ENTRYPOINT执行时间不同,
RUN是创建镜像时执行
CMD&ENTRYPOINT 是容器启动时运行的
RUN 运行命令有两种格式
1、RUN yum install -y vim #Shell命令格式
2、RUN [“yum”,“install”,"-y",“vim”] Exec命令格式
采用shell命令格式运行命令会创建子线程,退出后进入shall父进程,官方推荐Exec
ENTERPOIT命令是在容器启动时,进行运行,如果有多个ENTRERPOINT命令
只会运行最后一个
CMD是默认,容器运行时命令,也是在容器运行时如果有多个CMD命令
只会运行最后一个,进行使用,CMD命令
ENTRERPOINT一定会执行,CMD不一定会执行
如果在RUN命令后添加了CMD命令,则dockerfile中的CMD命令不会被执行
如果上下两个命令是ENTERPOINT和CMD命令则,两行合并到一起运行
就可以接收可变参数
实际操作
1、在工作中直接,访问官方镜像仓库,hub_docker.com,就可以拉取镜像
docker pull redis
2、准备文件:1、redis原码包(redis-4.14.tar.gz和redis启动配置redis-7000.conf)
具体步骤
编写dockerfile
FROM centos #docker提供的基本镜像
RUN [“yum”,“install”,"-y",“gcc”,“gcc-c++”,“net-tools”,“make”]
WORKDIR /usr/local
ADD redis-4.0.14.tar.gz
WORKDIR /usr/local/redis-4.0.14/src
RUN make && maker install
WORKDIR /usr/local/redis-4.0.14
ADD redis-7000.conf
EXPOSE 7000 #对外暴露端口7000
CMD [“redis-server”,“redis-7000.conf”] #启动redis用配置文件redis-7000.conf
————————————————————————————————————
容器间单向通信
创建容器后,就会有自己的虚拟IP
1、启动容器,增加容器的名称,docker run -d --name web tomcat
2、启动默认容器centos时,需要添加/bin/bash :docker run -d --name database -it
centos /bin/bash (centos默认是退出的)
3、容器之间是天天然互通的,如果需要绑定link名字:docker run -d --name web --ling
database tomcat
4、查看docker元数据(包括IP): docker inspect
双向通信
—网桥功能:1、连接外部的的物理网卡,与外界通信
2、容器网络分组,网桥就是创建一个虚拟网卡
查看网桥命令
docker network ls
创建网桥
docker network create -d bridge my-bridge
网桥和容器绑定
docker network connect my-bridge web
————————————————————————————
数据共享:volume
1、通过设置-v挂载宿主机目录
格式:docker run --name 容器名 -v 宿主机名:容器内挂载路径 镜像名称
示例:
docker run --name t1 -v /usr/webapps:/usr/local/tomcat/webapp tomcat