基础命令
- 启动容器:
docker run -dit ubuntu
- 查看建立的容器:
dokcer inspect
- 自定义容器名:
dokcer run --name=自定义名 -i -t IMAGE /bin/bash
- 重新启动停止的容器:
docker start [-i] 容器名
。 -i是以交互的方式启动停止的容器 - 删除已经停止的容器:
docker rm 容器名
守护式容器
* 能够长期运行* 没有交互式会话* 适合运行应用程序和服务
- 以守护式运行容器:
docker run -i -t IMAGE /bin/bash同时按ctrl+P和ctrl+q //退出后容器在后台运行
- 附加到运行中的容器:
docker attach 容器名
- 启动守护式容器:
//-d 使用后台的方式来执行命令docker run -d 镜像名 [COMMAND] [ARG...]
- 查看容器日志:
docker logs [-f] [-t] [--tail] 容器名 -f --follows=true|false 默认false -t timestamps=true|false 默认false --tail="all"
- 查看容器内进程:
docker top 容器名
- 在运行中的容器内启动新进程:
docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]
停止守护式容器:
备注:重启容器后容器的ip和端口映射都会发生改变。
docker stop 容器名 //发送一个信号给容器,等待停止docker kill 容器名 //直接停止容器
设置容器的映射端口
端口映射
run [-P] [-p]//将为容器暴露的所有端口进行映射-P,publish-all=true | false 默认为false docker run -P -i-t ubuntu /bin/bash //指定映射端口-p,--publish=[]containerPort //只制定容器的端口(宿主机的端口是随机映射的) docker run -p 8080:80 -i -t ubuntu /bin/bashhostPort:containnerPort //同时指定宿主机的端口和容器的端口(一一对应) docker run -p 8080:80 -i -t ubuntu /bin/bash ip::containerPort //指定ip和容器的端口 docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash ip:hostPort:containerPort //ip、宿主机端口和容器端口都进行指定 docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash
查看端口映射
dokcer port 容器名
练习:在容器中部署静态网站
//创建映射80端口的交互式容器docker run -p 80 --name=web -i -t b2ab0ed558bb /bin/bash //安装Nginxyum install -y nginx//安装文本编辑器vimyum install vim//验证网站访问docker port web //查看端口
镜像
- 列出镜像
docker images [OPTSIONS][REPOSITORY] -a,--all=false //默认不显示中间层的镜像 -f,--filter=[] //显示时的过滤条件 --no-trunc=false //不使用截断的形式来显示数据(默认会截断唯一id) -q,--quiet=false //只显示镜像的唯一id
- 镜像的仓库
REPOSITORY 仓库 镜像的集合
TAG 标签 默认使用latest标签
查看镜像的详细信息(inspect也支持容器的查看)
docker inspect [OPTIONS]CONTAINER|IMAGE[CONTAINER|IMAGE...] -f,format=""
- 删除镜像
docker rmi [OPTIONS]IMAGE[IMAGE...] -f,--force=false 强制删除镜像 --no-prune=false 会保留被删镜像中被打标签的父镜像
获取和推送镜像
查找镜像
Docker Hubhttps://registry.hub.docker.com
docker search [OPTIONS]TERM --automated=false --no-trunc=false -s,--stars=0
拉取镜像
docker pull [OPTIONS] NAME[:TAG] -a,all-tags=false 下载全部标记的镜像
推送镜像
docker push NAME[:TAG]
构建镜像
保存对容器的修改,并再次使用
自定义镜像的能力 以软件的形式打包并分发服务及其运行环境
- 通过容器构建
会暂停正在使用的容器
```docker commit [OPTIONS] CONTAINER [REPOSITORY][:TAG] -a,--author="" 镜像的作者 -m,-message="" 镜像构建的信息 -p,--pause=true 可以不暂停正在使用的容器```
- 通过Dockerfile文件构建
创建Dockerfile文件
运行docker build命令
docker build [OPTIONS] PATH | URL | - --force-rm=false --no-cache=false -pull==false -q,--quiet=false --rm=true -t,--tag=""
### dockerC/S模式
Remote API
- RESTful风格API
STDIN、STDOUT、STDERR
Docker官方的Remote APO Reference:
连接方式(客户端与服务端的守护进程)
- unix://var/run/docker.sock
- tcp://host:port
- fd://socketfd
Docker守护进程的配置和操作
查看守护进程
ps -ef |grep dockersudo status docker
使用service命令管理
启动sudo service docker start停止sudo service docker stop重启sudo service docker restart