docker
2020-03-05 11:29:43 4 举报
AI智能生成
docker常用命令整合
作者其他创作
大纲/内容
docker
介绍
基于go语言开发的一个应用容器引擎,可以打包应用和依赖包到一个轻量级、可移植的容器中,然后发布到任意的Linux系统中,容器开销极低
应用场景
web应用自动化打包和发布
自动化测试和持续集成和持续发布
其他我看不懂的地方。。。
docker三个基本概念
镜像 Image:
容器 Container: 镜像和容器的关系类似与类和实例,镜像是静态的定义,容器是镜像运行时的实体,可以被创建、启动、删除、暂停等
仓库 Repository:统一保存镜像的地方
和虚拟机相比,在使用docker时,并没有一个真正的“docker容器”运行在宿主机上,docker帮助用户启动的还是原来的进程,只不过在创建进程时加上了各种namespace和对宿主机资源使用的限制; 对容器的隔离时有宿主机本身的操作系统决定的;容器本质上时一种特殊的进程(被隔离和限制)
安装
步骤
使用
三种运行容器方式
执行容器内程序:docker run 镜像名 在启动容器里执行的命令
docker: Docker的二进制执行文件
run: 和docker组合运行一个容器
镜像名:首先在本地查找镜像是否存在,否则从镜像仓库中下载
运行交互式容器:docker run -i -t 镜像名 命令
-t:在新容器指定一个终端
-i: 允许对容器内标准输入进行交互
执行该命令会立即进入到容器终端,使用exit或者ctrl+d退出
后台模式启动容器:docker run -d 镜像名 命令
-d: 在后台启动容器
命令执行完会出现一个长字符串,就是容器的id,对每个容器都是唯一的
进入容器方法
docker attach 镜像ID: 该方法退出容器,镜像就会停止
docker exec -it 镜像id /bin/bash: 退出容器终端,容器仍会继续执行
docker run -itd 镜像名 /bin/bash 后台运行容器并进入容器终端
镜像操作
docker images: 列出本机上所有镜像
docker pull 镜像名:tag :获取镜像,未指定版本下载最新版本
docker search xxx:搜索镜像 http://hub.docker.com
docker rmi 镜像名:删除镜像
创建镜像
更新已有镜像
方法1:容器导出为快照,快照导入成镜像
导出:docker export 容器ID > 快照文件名
导出:cat 快照文件位置 | docker import - 镜像名
方法2:docker commit -m=\"提交描述信息\" -a=\"作者\" 容器id 创建的目标镜像名
使用Dockerfile创建新的镜像
docker build -t 创建的目标名 上下文路径
上下文路径里面的文件会被打包提供给docker使用
Dockerfile 例子
1、FROM:定制的镜像是基于FROM镜像2、RUN: 执行后面的命令行;可以是shell格式或者exec3、COPY:将上下文路径中文件复制到容器的指定目录中4、CMD:为启动容器指定默认要运行的程序
dockerfile的指令每执行一次都会再docker上新建一层,过多无意义的层会导致镜像膨胀过大,使用&&将命令连接,执行后会只创建一层镜像
容器操作
运行一个docker Web容器(例子)
1、载入镜像 docker pull training/webapp 2、运行镜像 docker run -d -P training/webapp python app.py -d 后台运行 -P 将容器内部使用的网络端口映射到使用的主机上
设置指定端口 docker run -d -p 5000:5000 training/webapp python app.py查看容器状态时就会看到PORTS一列,主机端口->容器端口
docker logs -f 容器id可以查看容器标准输出
docker top 容器名或者ID: 查看容器内部运行的进程
docker inspect 容器名或者ID:查看docker的底层信息
容器互联
1、创建一个docker网络:docker network create -d bridge test-net
2、运行一个容器并接入到test-net: docker run -itd --name test1 --network test-net ubuntu /bin/bash再运行一个容器并接入到test-net中
3、验证:使用ping 主机名
docker compose
定义和运行多容器 Docker 应用程序的工具
1、sudo curl -L \"https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)\" -o /usr/local/bin/docker-compose2、sudo chmod +x /usr/local/bin/docker-compose3、sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose4、测试是否安装成功 docker-compose --version
使用步骤:1、使用dockerfile定义应用程序的环境2、使用dockfile-compose.yml定义构成应用程序的服务3、执行docker-compose up 命令来启动整个应用程序
仓库管理
repository是集中存放镜像的地方,docker hub是目前docker官方维护的一个公共仓库
docker login / docker logout
docker pull / docker push 可以推送自己的镜像
常用命令
帮助:docker 查看所有命令 docker command --help查看该command命令详情
docker ps: 可以查看容器状态,可以查到容器id 状态 创建时间 容器名称等;docker ps -a 查看所有容器
docker stop 容器id或者容器名称:停止一个容器docker start 启动一个停止的容器docker restart 重启docker rm -f 容器id: 删除容器;删除的容器必须是停止状态的,否则报错docker container prune: 清理所有处理终止状态容器
docker machine
用来管理docker主机,比如快速给100台服务器安装docker
swarm集群管理
操作实例
0 条评论
回复 删除
下一页