ssplyh 发表于 2019-2-20 09:39:45

docker使用管理


[*]容器生命周期
[*]docker命令获取帮助
[*]docker的常用命令
[*]docker基本操作
[*]镜像管理


[*]  容器生命周期
http://i2.运维网.com/images/blog/201812/07/569d82a484adff1ca2f734f01fc7e834.png
运行容器一个实例:
#docker run -it --rm --name bbox busybox:latest /bin/sh
当运行这条指令后的执行流程步骤:
1.检查本地是否存在指定的镜像,不存在则从registry下载;
2.利用镜像启动容器
3.分配一个文件系统,并且在只读的镜像层之外挂载一个可读写层;
4.从宿主机配置的网桥接口桥接一个虚拟接口给此容器;
5.从地址池中分配一个地址给容器;
6.执行用户指定的应用程序;
7.程序执行完成后,容器即终止
注意:容器是为任务而生,任务完成即销毁,释放资源。为单一任务(进程)设计

[*]  docker命令获取帮助
man ,docker --help...
用法:docker COMMAND
docker COMMAND --help 获取单个指令的详细用法

[*]  docker的常用命令
环境信息相关:
info
version :查看当前安装版本信息
系统维护相关:
images :查看本地镜像
inspect:查看docker对象的详细信息,json格式
build:构建镜像
commit :基于已有容器创建镜像
pause/unpause :暂停(恢复)当前运行容器
ps:查看当前在运行的容器
rm :删除docker ps -qa |xargs docker rm -f
rmi :删除镜像 docker images -qa |xargs docker rmi 删除 所有镜像
run:运行容器
start/stop/restart:启动、停止、重启容器
top:用于查看正在运行的容器中的进程的运行状态
kill:终止当前运行的某个容器
...
日志信息相关:
events
history
logs:查看容器运行日志
Docker hub服务相关:
login:登录仓库
logout
pull:从仓库拉取镜像到本地
push:将镜像推送至某仓库
search:搜索镜像

[*]  基本操作:

[*]启动一个nginx容器,使其在后台运行并将其80端口映射到宿主机8080端口
docker run -d -p 8080:80 httpd      
docker run常用选项:
-t:配置一个伪终端并绑定到容器的标准输入上
-i:让容器的标准输入保持打开
-d:将容器放入后台运行
-c:指定分配该容器的cpu分片
-m:指定分配给该容器的内存大小,单位为B,K,M,G
--name:为容器分配指定名称
--rm:当容器退出时自动删除容器
# docker run -it --rm alpine:latest /bin/ls
bin    etc    lib    mnt    root   sbin   sys    usr
dev    home   mediaproc   run    srv    tmp    var
# docker run -it alpine:latest /bin/ls
bin    etc    lib    mnt    root   sbin   sys    usr
dev    home   mediaproc   run    srv    tmp    var
# docker ps -a
CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAME
S49aedd5aca20      alpine:latest       "/bin/ls"         10 seconds ago      Exited (0) 8 seconds ago                     joll
y_goldwasser
[*]把容器运行在前台:启动一个alpine容器输出 hello world,打印完即退出      
# docker run --rm alpine:latest /bin/echo "hello woeld"hello woeld
[*]容器运行在后台:
docker run -d alpine:latest/bin/sh -c "while true; do echo hello world; sleep 1;done"
  服务类容器需要长期运行,所以使用daemon的方式运行;而工作类环境通常是给我们提供一个临时的工作环境,所以一般以run –ti的方式在前台运行


[*]查看当前节点上的容器状态
docker ps    #查看当前正在运行的容器
选项:
-a:查看所有容器,包括停止的
-q:只显示容器ID
-l:显示最后一次创建的容器`


[*]  镜像管理操作

[*]获取镜像
docker pull name:tag #镜像直接从官方网站下载
docker pull xuetong.com:5000/centos:6.6 #从指定仓库下载
[*]查看镜像
docker images
docker inspect centos:latest    #获取镜像的详细信息
[*]镜像打标签
docker tag centos:latest xuetong.com:5000/centos:6.6
[*]搜索镜像
docker search NAME:tag
建议直接到官方网站搜索:https://hub.docker.com/explore/
[*]镜像导入导出
dockersave-o/PATH/TO/SOMEFILE.TARNAME[:TAG]   
dockerload-i/PATH/FROM/SOMEFILE.TAR
docker image load -i /root/centos-latest.tar.xz
[*]删除镜像
docker rmi name:tag
如果一个镜像有多个tag,只会删除指定的tag,镜像本身不会删除,如果docker rmi后指定镜像ID,则所有tag都会被删除
有时候重新安装后,发现docker rmi删除不了,可以直接删除rm -rf /var/lib/docker/image/overlay2/imagedb/content/sha256/* #默认镜像下载地方
# docker rmi $(docker images -q)Error: No such image: 0763c7d87fddError: No such image: e1ddd7948a1cError: No such image: b2b03e9146e1Error: No such image: 11cd0b38bc3c# docker imagesREPOSITORY          TAG               IMAGE ID            CREATED             SIZErancher/rancher   latest            0763c7d87fdd      4 months ago      528MBbusybox             latest            e1ddd7948a1c      4 months ago      1.16MBregistry            latest            b2b03e9146e1      5 months ago      33.3MB
[*]创建镜像:commit(根据现有镜像创建),不建议使用这种方法,无获取构建过程,建议使用dockerfile构建。





页: [1]
查看完整版本: docker使用管理