Dockerfile中常用的指令
Dockerfile中常用的指令
FROM 基础镜像
COPY 复制文件
ADD 添加文件
RUN 要执行的命令
CMD 容器启动时要执行的命令
EXPOSE 默认向外暴漏端口
VOLUME 创建挂载点
WORKDIR 工作目录
USER 当前操作用户
docker持久化存储
数据卷:
数据卷的增、删、改、查
docker volume create 创建卷
ls 查看所有卷
inspect 查看详细信息
prune 删除所有未被使用的卷
rm 删除一个或者多个卷
卷存放的目录: /var/lib/docker/volume/
匿名卷: 在构建镜像时通过VOLUME指定挂载点,那么在基于镜像创建容器时,会自动创建一个匿名卷挂载至改挂载点!
除了可以挂载数据卷之外,还可以指定改在宿主机的目录或者文件到容器中
例如:
docker run --name web4 -d -p 84:80 -v /opt/html:/usr/share/nginx/html 10.30.5.120/docker/nginx
docker run --name redis1 -d -p 6378:6379 -v /root/redis.conf:/etc/redis.conf redis:1.1
1.基于正在运行的容器,进行更改 提交为新的镜像
Centos Ubuntu
Centos
docker commit 容器 新镜像名:tag
docker run --name centos --rm -it 10.30.5.120/docker/centos
yum -y install httpd
再开一个窗口将容器提交为镜像
docker commit centos(容器名) httpd:1.1(新镜像名)
基于新镜像创建一个容器
docker run -d -p 80:80 httpd:1.1 httpd -DFOREGROUND
2.通过编写Dockerfile构建httpd镜像
编写Dockerfile
vim Dockerfile
FROM 10.30.5.120/docker/centos
RUN yum -y install httpd && yum clean all
CMD httpd -DFOREGROUND
指令解释:
FROM \\基础镜像
RUN \\要在基础镜像中运行的命令
CMD \\默认在启动容器时要执行的命令
读取Dockerfile开始构建
docker build -t httpd:1.2 ./
-t \\给新的容器定义一个名字
nginx -g 'daemon off;'
虚拟机:
通过虚拟化技术我们可以在服务上运行多个不同环境的虚拟机,大大提高我们对服务器的利用率!
虚拟机的硬件的弹性扩展也方便了我们后期虚拟机配置的提升
统一的管理平台也会大大降低我们的维护成本
容器:
容器本身的意思是指可以存放东西的器皿,我们这里可以把容器想想成是一个盒子、箱子!里面存放的就是我们要运行的应用:如一个nginx、tomcat
容器技术相对于虚拟机具有哪些特点?
1.体积小
2.启动速度快
3.性能接近原生
4.单节点支持的容器的数量多
6.环境一致性
docker的安装
Centos7.6
1.配置docker的yum源,可以使用阿里云的
2.安装docker-ce
yum -y install docker-ce
3.关闭防火墙
systemctl stop firewalld
setenforce
4.启动Docker
systemctl start docker
systemctl enable docker
Docker三个基本概念
1.镜像仓库(hub.docker.com 镜像仓库)
2.镜像
3.容器
Docker常用命令:
对镜像的操作:
1.获取镜像
增:
docker pull 镜像名:TAG
删:
删除镜像,我们不能直接删除有容器依赖的镜像
docker rmi 镜像名/ID
docker rmi -f 镜像名/ID
改:
docker tag
查:
查看本地镜像
docker images
对容器的操作:
增:
1.创建并运行容器
docker run --name 容器名字 -d -p 宿主机端口:容器端口 基础镜像
例子: docker run --name web1 -d -p 80:80 nginx:latest
删:
删除容器,我们不能直接删除一个正在运行的容器,需要先停止再删除,或者-f,强制删除
docker rm web1
docker rm -f web1
改:
容器重命名
docker rename
容器启动和停止
docker start/stop/restart 容器名
docker pause 容器名 \\暂停容器
docker unpause 容器名 \\取消暂停容器
docker update \\更新容器的配置
docker cp \\容器和宿主机之间复制文件,默认覆盖已有的文件
查:
查看正在运行的容器
docker ps
查看所有的容器
docker ps -a
docker stats 容器名 \\查看容器运行状态
docker top 容器名 \\查看容器正在运行的进程