Docker笔记
Docker笔记docker镜像操作容器操作数据卷镜像dockerfile私有仓库虚拟机和容器看起来好像不太难的docker记录下学习笔记学完下一步学K8Sdocker开源的应用容器引擎daemon守护进程systemctl start/stop/status/restart dockersystemctl enable docker开机启动镜像操作相当于一个root文件系统镜像加速器/etc/docker/daemon.jsondocker images查看本地镜像docker search ImageName在远端仓库查找镜像docker pull ImageName[:Version]从远端仓库拉去镜像到本地版本号不写默认latestdocker rmi ImageID或ImageName[:Version]删除本地镜像容器操作docker run -it/-id --nameDockerName ImageName:Ver /bin/bash-i 保持一致运行-t 分配伪终端-d 后台创建退出后不会自动关闭【it交互式容器退出后容器关闭id守护式容器】name后的可替换为空格/bin/bash进入容器的初始化指令打开已给shell脚本。默认可不设置docker ps查看当前运行的所有容器-a包括历史容器docker start/stop/restart/rm/inspect DockerName启动、停止、删除、查看容器启动的容器需先停止才可删除docker exec -it DockerName或DockerID bash在正在运行的容器中执行新命令-it表示开启一个交互式终端常用于进入容器内部调试-u指定进入容器的用户docker logs DockerName查看容器的日志输出-f可实时跟踪类似tail -fdocker stats实时显示所有运行中容器的CPU、内存、网络资源占用情况docker top Docker查看容器内运行的进程数据卷数据卷宿主机目录或文件通过挂载挂到容器里一个数据卷可以被多个容器挂载修改同步run启动容器的时候-v 宿主机目录:容器目录绝对路径不存在自动创建多个-v创建多个-v /volume数据卷容器volume是容器目录宿主机上回自动分配目录当作数据卷docker run -it --namec1 --volume-from c3 ImageName:Ver /bin/bash启动容器c1挂载到数据卷c3中-p 宿主机端口:容器端口-e 环境变量镜像原理Linux文件系统bootfs(bootloader引导加载程序) rootfs(Linux标准目录和文件)1、底层bootfs使用宿主机的2、rootfs称为base image3、上层可叠加其他镜像文件父镜像只读镜像docker commit DockerID ImageName:Ver容器转镜像数据卷不会生效docker save -o FileName ImageName:Ver镜像转压缩文件docker load -i FileName文件转镜像dockerfile文本文件包含多条指令每层指令构建一层镜像docker build -f DockerFileName -t ImageName:Ver通过dockerfile构建镜像如果不带-f则默认用当前路径下的dockerfile文件RUN执行一段命令容器创建过程中执行CMD容器启动命令启动的时候执行ENTRYPOINT入口FROM指定父镜像MAINTAINER作者信息LABEL标签可代替maintainer最终展示在docker image基本信息中ADD添加文件COPY复制文件ENV环境变量ARG构建参数VOLUME设置目录挂载EXPOSE暴露端口WORKDIR工作目录一进入容器后停留的位置USER指定执行用户HEALTHCHECK健康检查ONBUILD触发器STOPSIGNAL发送信号量到宿主机SHELL指定执行脚本的shelldocker compose安装后使用1、利用DockerFile定义运行环境镜像2、使用docker-compose.yml(名字固定)定义组成应用的各服务3、在yml木下运行docker-compose up启动应用-d表示后台运行docker-compose downdocker-compose psdocker-compose logs -fdocker-compose exec 服务名 bashdocker-compose config检查最终配置version: 3 services: nginx: image: nginx ports: - 80:80 links: - app volumes: - /src:/dst app: image: app expose: # 暴露端口 - 8000私有仓库也是一个容器docker pull registry拉取私有仓库的镜像docker run -id --nameregistry -p 5000:5000 registry查看宿主机文件vi /etc/docker/daemon.json添加{“insecure-registry”:[“IP:5000”]}让docker信任私有仓库地址systemctl restart docker重启docker生效docker start registrydocker tag Image:Ver IP:PORT/Image:Ver打标签docker push IP:PORT/Image:Ver推送docker pull IP:PORT/Image:Ver虚拟机和容器虚拟机虚拟化硬件操作系统与宿主机可不同内存较大容器虚拟化操作系统操作系统与宿主机一直内存小