docker操作笔记
1、查看docker版本:docker info /docker version
2、使用 docker run 命令来在容器内运行一个应用程序。如输出helloworld:docker run ubuntu:15.10 /bin/echo "Hello world"
各个参数解析:
docker: Docker 的二进制执行文件。
run:与前面的 docker 组合来运行一个容器。
ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
/bin/echo "Hello world": 在启动的容器里执行的命令
以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。
3、运行交互式容器
命令:docker run -i -t ubuntu:15.10 /bin/bash
参数解析: -t:在新容器内指定一个伪终端或终端。
-i:允许你对容器内的标准输入 (STDIN) 进
运行exit命令或者使用CTRL+D来退出容器

4、启动容器(后台模式)
查看是否有容器在运行:docker ps -d: 后台运行容器,并返回容器ID
停止容器:docker stop id

注意:
CONTAINER ID:容器ID
NAMES:自动分配的容器名称
在容器内使用docker logs命令查看容器内的标准输出
5、docker客户端
查看到docker 客户端的所有命令选项:docker
使用命令 docker command --help 更深入的了解指定的 Docker 命令使用方法
6、使用docker容器运行一个web应用
docker pull training/webapp # 载入镜像
docker run -d -P training/webapp python app.py #在docker容器中运行一个 Python Flask 应用来运行一个web应用
参数说明:
-d:让容器在后台运行。
-P:将容器内部使用的网络端口映射到我们使用的主机上
docker ps #查看正在运行的容器

Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32768 上。
docker run -d -p 5000:5000 training/webapp python app.py #通过 -p 参数来设置不一样的端口
7、查看WEB应用程序容器的进程
docker top [ID或者name] #查看容器内部运行的进程
docker inspect [ID或者name] #查看Docker的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。

docker start [ID或者name] #启动容器
docker rm [ID或者name] #删除不需要的容器
注意:删除容器时,容器必须是停止状态
8、管理和使用本地 Docker 主机镜像
查看docker镜像:docker images
搜索可用镜像:docker search <image>
拉取镜像:docker pull 镜像名
显示镜像的所有层(layer):docker images --tree
删除一个或多个image:docker rmi <image ID>
docker inspect : 获取容器/镜像的元数据。
9、创建镜像
(1)从已创建的容器中更新镜像,并且提交这个镜像:先使用镜像创建一个容器,查看容器 id,进入容器,修改容器后使用docker commit来提交容器副本
(2)使用 Dockerfile 指令来创建一个新的镜像:创建Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像,使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像,语法:docker build -t 要创建的目标镜像名 Dockerfile文件路径



使用新的镜像创建容器:docker run -t -i ermao/centos:6.7 /bin/bash
添加镜像标签:docker tag 860c279d2fec ermao/centos:dev
860c279d2fec是镜像Id ,用户名称、镜像源名(repository name)和新的标签名(tag)
10、网络端口映射
例:创建一个Python应用的容器:使用-P参数,-P :是容器内部端口随机映射到主机的高端口。-p : 是容器内部端口绑定到指定的主机端口。
11、管理容器
$docker port [ID或者name] #查看端口的绑定情况。
容器命名:使用--name标识
$ docker ps // 查看所有正在运行容器
$ docker stop containerId // containerId 是容器的ID
$ docker ps -a // 查看所有容器
$ docker ps -a -q // 查看所有容器ID
$ docker stop $(docker ps -a -q) // stop停止所有容器
$ docker rm $(docker ps -a -q) // remove删除所有容器
$ docker rm $(docker container ls -f "status=exited" -q) //删除所有停止的容器
$ docker exec -it “容器ID” bash //进入容器shell
12、推送镜像
(1)使用tag命令修改为规范的镜像

(2)在docker hub上创建仓库Public Repository,name应与镜像名一致
(3)推送镜像规范:docker push 注册用户名/镜像名:推送之前要登录


(4)查看自己Hub中是否有该镜像
13、Docker run 命令参数及使用
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
14、创建私有仓库
(1)docker pull registry:latest 拉取私有仓库镜像
(2)docker run -d -p 5000:5000 -v /opt/docker/registry:/tmp/registry registry 启动容器,并将registry的容器存储images的文件夹映射到宿主server的/opt/docker/registry文件夹。(172.18.0.102)
(3)给要Push的镜像打标签:docker tag nginx 172.18.0.102:5000/nginx
(4)在172.18.0.253的”/etc/docker/“目录下daemon.json文件中写入:{ "insecure-registries":["172.18.0.102:5000"] }
(5)重启docker
(6)push镜像:docker push 172.18.0.102:5000/nginx

(7)其他server下载:docker pull 172.18.0.102:5000/nginx
注:172.18.0.102是仓库
172.18.0.253是用户开发机
查看仓库里有哪些镜像
(1)web端查看

(2)命令行查看

docker操作笔记的更多相关文章
- Docker操作笔记(二)容器
容器 一.启动容器 启动一个容器有两种方式: 1.基于镜像新键并启动一个容器: 所需要的主要命令为docker run docker run ubuntu:18.04 /bin/echo " ...
- Docker操作笔记(四)使用网络
使用网络 Docker允许通过外部访问容器或容器互联的方式来提供网络服务. 一.外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射. 当 ...
- Docker操作笔记(三)数据管理
数据管理 一.数据卷 数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷 可以在容器之间共享和重用 对 数据卷 的修改会立马生效 对 数据卷 的更新,不会 ...
- Docker操作笔记(一)使用镜像
使用镜像 一)获取镜像 从Docker镜像仓库获取命令的格式是: docker pull [选项] [Docker Registry 地址[:端口号]] 仓库名[:标签] 具体的选项可以通过docke ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
- Docker学习笔记总结
Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/ 一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...
- docker学习笔记二:常用命令
docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...
- Docker:学习笔记(1)——基础概念
Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...
- Docker学习笔记 — Docker私有仓库搭建
Docker学习笔记 — Docker私有仓库搭建 目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2 和Mavan的管理一样,Dockers ...
随机推荐
- 前后端分离-模拟数据之RAP2快速入门
是啥? RAP是一个可视化接口管理工具 通过分析接口结构,动态生成模拟数据,校验真实接口正确性, 围绕接口定义,通过一系列自动化工具提升我们的协作效率.我们的口号:提高效率,回家吃晚饭! 可视化编辑, ...
- vscode调试npm包技巧
官网文档:https://code.visualstudio.com/docs/nodejs/nodejs-debugging node调试方法(日志和debuuger):https://blog.r ...
- 把json1赋值给json2,修改json2的属性,json1的属性也一起变化
let json1 = { a: 1}let json2 = json1json2.a = 5 console.log(json1.a) // 5 console.log(json2.a) // 5 ...
- Spring自定义标签的实现
首先 简单写下 spring xml解析的过程 通过一段简单的 调用spring代码开始 public static void main(String[] args) { ApplicationCon ...
- ASE19团队项目alpha阶段model组 scrum1 记录
本次会议于11月1日,19时整在微软北京西二号楼13478召开,持续15分钟. 与会人员:Jiyan He, Kun Yan, Lei Chai, Linfeng Qi, Xueqing Wu, Yu ...
- Python单元测试框架unittest重要属性 与 用例编写思路
前言 本文为转载,原文地址作者列举python unittest这个测试框架的主要属性和 测试用例思路 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行, ...
- Oracle【序列、索引、视图、分页】
1.Oracle序列语法:create sequence 序列名 特点1:默认是无值,指针指向没有值的位置 特点2:序列名.nextval 每次执行值会自增一次,步长为 1 特点3:序列名.currv ...
- apache简介与安装
1.1 apache简介 apache当前全世界排名点击这里 1.1.1 当前互联网主流web服务说明 静态服务 apache --->中小型静态web服务的主流,web服务器中的老大哥 ngi ...
- 将本地代码使用Git上传更新至Github
注册.配置git 1. 首先注册git image 2.然后下载.配置git 百度“git下载”,然后默认安装,注意的是最后要添加环境变量,最后安装结果如下: image 配置如下: 1.设置本地的s ...
- 远程文件传输工具sftp、scp、rsync
一.scp 格式 scp [options] [user@]host : /sourcefile /destpathscp [options] /sourcefile [user@]host:/des ...