centos环境下使用docker
帮助命令
描述版本信息
docker version // 描述版本信息
docker的详细信息
docker info // docker的详细信息
docker的详细信息
docker --help // 帮助命令信息
镜像命令
可以从docker的图标来理解docker究竟是什么。大海指的就是我们的电脑,叫做宿主主机。大海里面有各式各样的鱼,代指各种应用程序,而这条大鲸鱼就是其中的一个程序——docker。鲸鱼背上的集装箱就是docker容器
列出本地主机的镜像
docker images // 列出本地主机的镜像
搜寻centos镜像
docker search centos // 搜寻centos镜像
拉取镜像
docker pull tomcat // 拉取tomcat镜像到本地
docker pull centos // 拉取centos镜像到本地,默认为最新版
删除镜像
docker rmi centos:latest // 没有运行的容器可以直接删除
docker rmi -f hello // 运行的容器强制删除
docker rmi storm:latest tomcat:latest // 删除多个镜像
docker rmi $(docker images -qa) // 删除所有镜像
容器命令
启动容器
有镜像才有容器,以centos镜像为例子
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d: 后台运行容器,并返回容器ID;
–name=“容器名字”: 为容器指定一个名称;
docker run -it centos:centos7 // 启动一个centos容器,并且可以使用伪终端交互使用,默认跟的是/bin/bash命令,也可以手动输入命令
显示正在运行的容器
docker ps // 显示当前运行的容器
docker ps -a // 显示所有容器,包括没运行的
docker ps -q // 显示当前运行的容器ID
docker ps -qa // 显示所有容器ID,包括没运行的
退出容器
退出容器命令两种方式
exit // 停止容器并退出
和ctrl + p + q // 不停止容器退出
重新启动容器
docker restart 9cbb2868366b // 重新启动容器
关闭容器
docker stop cacda3f1fb5b // 关闭容器
docker kill 9cbb2868366b // 强制关闭容器
删除以前执行过的容器
停止容器,但是docker的缓冲中还是有曾经运行的容器ID:
删除以前的容器命令如下:
docker rm 容器ID // 删除一个容器
docker rm $(docker ps -qa) // 删除全部容器
容器后台运行
docker容器运行必须有一个前台进程, 如果没有前台进程执行,容器认为空闲,就会自行退出,容器运行的命令如果不是那些一直挂起的命令( 运行top,tail、循环等),就是会自动退出,这个是 docker 的机制问题
docker run -d centos:centos7 // 后台运行一下,就自动关闭
docker ps
docker run -d centos:centos7 /bin/sh -c "while true;do echo xxzz;sleep 2;done"
docker run -d centos:centos7 /bin/sh -c "while true;do echo xxzz;sleep 2;done"
docker ps
docker logs -tf 053772e7e151
logs输出该容器的id,centos7容器无限打印就会使用一直有前台进程执行,后台就不会关
-f : 跟踪日志输出
–since :显示某个开始时间的所有日志
-t : 显示时间戳
docker inspect 容器ID
重新进入已经运行的容器
重新进入已经运行的容器:
1. 通过attach进入容器
docker run -it centos:centos7
ctrl + p + q
docker attach 7d078a164e49 // 直接进入正在运行容器,进入伪终端
docker start 7d078a164e49
docker ps
docker exec -it 7d078a164e49 ls // exec 容器ID 容器执行的命令 , 但是不会进入伪终端,直接执行 命令之后结束
2. 通过exec也可以进入容器
docker exec -it 7d078a164e49 bash // 直接运行bash命令
所以exec的功能比较强大…
容器和本机之间文件传输
将centos容器中/tmp/yum.log拷贝到主机:
docker cp 7d078a164e49:/tmp/yum.log /root // docker cp 容器ID:数据路径 本地路径
同理,将本地文件翻入docker容器中
docker cp /root 7d078a164e49:/tmp/yum.log // docker cp 本地路径 容器ID:数据路径
Docker制作镜像
通过容器制作镜像
Docker commit 命令
docker commit :从容器创建一个新的镜像。
语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
实例
将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。
runoob@runoob:~$ docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057
runoob@runoob:~$ docker images mymysql:v1
REPOSITORY TAG IMAGE ID CREATED SIZE
mymysql v1 37af1236adef 15 seconds ago 329 MB