Docker时一个客户端/服务器(C/S)架构的程序,Docker客户端向Docker服务器或守护进程发出请求,Docker守护进程也称为Docker引擎
docker是Docker提供的一个命令行工具,用户可以使用docker或者restful api与Docker守护进程交互,用户可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程
docker镜像和容器
镜像是Docker生命周期中的构建或打包(docker build)阶段,容器是启动或执行阶段
docker使用
docker run命令
-i参数:保证容器的stdin是开启的,交互式shell的前提条件
-t参数:分配一个伪tty终端
如:
docker run -it ubuntu /bin/bash
docker ps -a查看所有容器
–name指定容器名
-d参数:指定容器在后台运行,即守护式容器
-p参数:指定容器端口和宿主机端口,如-p 8080:80,表示将容器80端口映射到宿主机8080端口
docker logs 容器名/id:查看容器日志信息
-f参数:与tail -f用法类似
-t参数:为日志加上时间戳
查看容器内进程:docker top 容器名/id
查看容器资源统计信息:docker stats 容器名/id
docker exec命令:在容器内启动新的进程,在容器内运行的进程有两类:
后台进程:没有交互需求
交互式进程:保持着在前台运行
如:
docker exec -d 容器名 命令内容
-d参数表示后台运行
docker stop 容器名/id:重启容器
自动重启容器可以在run命令中加上–restart参数,如
docker run --restart=always --name 指定名称 -d 容器名/id
–restart参数值:always表示无论容器退出码是什么,都重启容器,on-failure表示容器退出码为非0时重启容器,还可以加上重启次数
docker run --restart=on-failure:5 --name 指定名称 -d 容器名/id
查看容器详细信息:docker inspect 容器名/id
-f或者–format参数可以选择查看的结果
docker inspect --format='{{.Name}} {{.state.Running}}' 容器名/id
删除容器:docker rm 容器名/id,删除前需要docker stop/kill来停止容器
-f参数可以删除正在运行中的容器
docker镜像
docker images:列出镜像
docker pull 镜像名:拉取镜像
docker login:登录镜像仓库
docker commit 容器名/id 镜像仓库名/镜像名:提交构建镜像
docker commit -m'测试' -a'admin' 容器名 镜像仓库名/镜像名
-m参数指定镜像提交信息,-a参数指定构建镜像作者名
可以使用Dockerfile文件构建docker镜像,编写完成Dockerfile文件后,执行docker build命令,Dockerfile文件里的指令都会被执行并且提交,然后返回一个新镜像,如
docker build -t='镜像仓库/镜像名' .
-t参数指定镜像仓库和镜像名,.表示在当前目录下查找Dockerfile文件,即以当前目录下的文件为上下文构建镜像
如果在构建过程中某一步执行出错,导致构建失败,我们可以基于已经成功构建的最后一步的镜像使用docker run创建一个容器,然后执行出错的指令,调试构建
查看构建过程:docker history 镜像名
查看容器端口映射情况:docker port 容器名/id 端口号
docker port test 80
0.0.0.0:22010
返回宿主机的映射端口
docker run可以使用-p参数,将容器端口映射到宿主机指定端口上
docker run -d -p 8080:80 ubuntu
-p参数将容器的80端口映射到宿主机的8080端口
推送镜像:docker push 仓库名/镜像名
删除镜像:docker rmi 镜像名