docker top #查看进程数
docker attach 进入容器,exit会退出容器,ctrl+pq 不会导致容器退出,会把容器放在后台运行 (exit只是停止运行,可以重新起来,如果启容器时候,只是运行临时命令,容器不能起来)
docker exec 不会使容器退出,ps 不能显示上帝进程 1(只会退出当前bash)
docker images #查看当前镜像
docker ps #查看当前运行的容器
docker load < xx.tar #导入镜像
docker save image_name > xx.tar #导出镜像
docker run -it centos bash #it是可交互的tty(终端)
docker history image_name #可以docker层数
docker rmi #删除镜像 如果有以此来运行的需要先stop 再 rm掉,方可以删除镜像
docker tag #可以镜像定义标签
注意,如果docker run - it nginx 没有tty端,用 /bash/bin可以看到 是用ubantu做的
nginx容器的网页根目录是/usr/share/nginx/html
docker commit IDs name:label # IDs是容器的编号,后面是标签 这个可以提交新镜像,放入底层,但commit做出来的可能是黑箱镜像,层数很多,可以由此查看制作的思路,不建议用commit做
dockerfile 用作自动镜像编排 类似应答文件
Dockerfile语法格式:
– FROM:基础镜像
– MAINTAINER:镜像创建者信息(说明) ##说明活是谁干的
– EXPOSE:开放的端口 ##只是声明端口
– ENV:设置环境变量 ##查看 服务的配置文件 如http cat /usr/lib/systemd/system/httpd.service
– ADD:复制文件到镜像 ##add 必须是当前目录,相对路径,不可以写绝对路径,提交的是context的东西,会报错,制作Dockerfile时候,新建一个文件夹来写Dokcerfile。
– RUN:制作镜像时执行的命令,可以有多个 ###shell命令,多个RUN命令可以用 \ && (前面正确执行下面一条)来写,写成一条,避免层数过来,显得很臃肿
– WORKDIR:定义容器默认工作目录 ##相当于cd
– CMD:容器启动时执行的命令,仅可以有一条CMD ##用此镜像来启动容器时候,容器会首先执行此命令 启动命令在 cat /usr/lib/systemd/system/httpd.service 查看
本案例要求创建私有的镜像仓库:
- Docker主机:192.168.1.20
- 镜像仓库服务器:192.168.1.10
实现此案例需要按照如下步骤进行。
步骤一:自定义私有仓库
1)定义一个私有仓库
2)查看里面的镜像标签
docker run -d -p 80:80 -v /mnt/qq:/var/www/html -it myos:http ##-v是容器卷的概念 把真机目录映射到 容器里面,在容器里面删除的东西,真机的东西也会没有,是实时同步,但是容器的消亡,映射文件不会消亡,也可以用nfs做映射文件,容器中不存数据,为了容器的轻量级,因为容器排错有挑战,所以一旦容器损坏,就不会去修复,会直接删除
##注意,当一个容器,因为重启,或其他原因停止时,不要急着重新启动一个容器,可以试着先启动这个容器东西不会丢
##制作容器时候,可以以一个基础容器为模版,然后做成自己公司所需要的环境,再封装成一个容器,用Dockerfile做,尽量减少层数。
自定义网桥 略。。。。
基础命令参考
https://www.cnblogs.com/Csir/p/6888474.html #docker命令
http://www.runoob.com/docker/docker-run-command.html #docker参数