Docker基础
2021-02-19 16:03:02 2 举报
AI智能生成
docker详细基础
作者其他创作
大纲/内容
简介
Docker是开源的应用容器引擎
组件
register仓库
Docker镜像
Docker容器
相关目录
默认安装目录/var/lib/docker
graph 镜像的元数据
containers 容器的相关信息
安装
系统环境
centos7+
安装环境
yum install -y yum-utils
安装docker
yum install docker-ce docker-ce-cli containwed.io
启动服务
systemctl docker start
基本用法
镜像命令
拉取镜像
docker pull 镜像名:标签
默认标签名:latest
上传镜像
docker push 镜像名:标签
删除镜像
docker rmi 镜像ID
查看已安装镜像
docker images
容器命令
创建容器
docker run [options] 镜像名:标签
options
-d 后台启动
-i 交互式启动,通常与-t一起使用
-t 启动容器命令行,通常与-i一起使用
-p 设置端口映射
-p 宿主机端口:容器端口
-v 设置目录映射
-v 宿主机目录:容器目录
数据卷技术,映射后文件同步
-e 设置环境变量
-u 设置容器用户
-w 覆盖容器工作路径
--name 给容器起名字
--network 设置网络
-- restart 设置网络是否自动重启
默认启动
仅创建
docker create 镜像名:标签
启动容器
docker start 容器名|容器ID
docker restart 容器名|容器ID
停止容器
停止正常运行的容器
docker stop 容器名|容器ID
强制停止容器
docker kill 容器名|容器ID
停止所有容器
docker stop `docker ps -a -q`
暂停容器
docker pause 容器名|容器ID
退出容器
退出并停止容器
exit
退出不停止容器
Ctrl + p + q
进入容器
docker exec -it 容器名|容器ID /bin/bash
docker attach 容器名|容器ID
删除容器
docker rm 容器名|容器ID
正在运行的容器无法删除
查看容器
docker ps [options]
默认:显示正在运行的容器详细信息
-a 显示所有容器
-q 仅显示容器id
-l 显示最后运行的容器
-f status=exited 显示已停止的容器
docker status
查看CPU占有情况
docker logs -f --tail 100 容器名|容器ID
查看容器日志
docker inspect 容器名|容器ID
查看容器内部信息
数据卷
作用
将容器内的目录与宿主机的目录相映射,实现数据同步
优势
将宿主机的目录同步到容器中,利于管理员安装、部署、配置
将容器内的目录同步到宿主机,利于数据持久化
分类
匿名挂载
-v 容器内路径
docker run -d -v innerPath 镜像名|镜像ID
具名挂载
-v 挂载名称:容器内路径
docker run -d -v volumeName:innerPath 镜像名|镜像ID
对应挂载
-v 宿主机路径:容器内路径
docker run -d -v path:innerPath 镜像名|镜像ID
查看卷
查看存在的卷
docker volume ls
查看具体卷的信息
docker volume inspect 卷名
权限
ro
readonly 只读,容器内不能写文件
rw
readwrite 可读可写,默认模式
用法
docker run -d -v name:innerPath:ro 镜像名|镜像ID
docker run -d -v name:innerPath:rw 镜像名|镜像ID
备份与迁移
容器2镜像
commit命令
docker commit -m="描述" -a="作者:邮箱" 容器名称|容器ID 名称:标签
注意:容器是否有挂载卷,commit容器为镜像时,卷内数据会丢失,应该先备份
查看容器是否有挂载卷:docker inspect 容器名|容器ID {Mounts}
镜像持久化
docker save -o 指定文件 镜像名:标签
镜像加载
docker load -i 指定文件
Dockerfile
简介
用于构建新镜像的脚本文件,有一系列命令与参数构成
使用步骤
创建Dockerfile文件
编写Dockerfile文件
通过docker build命令生成新的镜像
使用镜像
语法
由一系列指令构成的脚本
每条指令由关键字与参数组成
#用于注释
顺序执行
每条指令都会构成新的镜像层
指令
#注释
FROM 指定基础镜像
MAINTAINER 指定作者+邮箱
RUN 执行命令构成镜像层
EXPOSE 指定容器暴露端口
CMD 指定容器启动时要运行的命令(只能一条)
ENTRYPOINT 与CMD相似,但可以追加参数
WORKDIR 指定默认工作路径
ENV 设置镜像构建过程中的环境变量
USER 指定容器默认的用户
VOLUME 指定容器挂载目录
ADD 将文件添加到镜像中,会自动解压
COPY 将文件复制到镜像中,不会解压
ONBUILD 镜像触发器
ARG指定一个变量,在构建期间可以使用
Docker网络
目的
利于容器间的通信
默认网卡
docker0
默认网卡不支持使用域名进行相互访问
--link
docker run ……--link 容器2 镜像
可以将两个容器进行绑定,可通过域名进行访问
原理
在容器内/etc/hosts 内进行了映射
单向能ping通
局限性大,一般不使用
网络network
创建网络
docker network create [options] netname
options
--driver
bridge:桥接模式(常用)
none:不配置网络
host:与宿主机共享网络
container:容器内网络连通
--subnet
--gateway
连接网络
docker network connect [options] netname 容器
原理:将容器添加进网络中,实现一个容器两个IP
可实现不同网关的容器相互通信
断开网络
docker network disconnect [options] netname 容器
查看网络
docker network ls
列出所有docker网络
docker network inspect netname
查看网络详细信息
删除网络
docker network rm netname
docker network prune
删除从未使用的网络
网络应用
使用
docker run …… --network=netname
0 条评论
下一页