Docker(三)Docker的容器操作
容器就是运行起来的镜像。
一、运行容器
命令docker run [参数] 镜像的标识|镜像名称[:tag]
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用的参数 :
-d:代表后台运行容器
-p:宿主机端口:容器端口 为了映射当前的Linux的端口和容器的端口
-name:容器名称:指定容器名称
-i: 交互式操作
-t: 终端。
如图所示,启动了一个ubuntu的容器,注意默认启动的为ubuntu:latest的镜像。没有会从仓库拉取。退出终端交互可以输入exit。
二、查看运行的容器
命令docker ps [-qa]
-a:查看全部的容器,包括没有运行
-q:只查看容器得到的标识
三、查看容器的日志
命令docker logs -f 容器id
-f:可以滚动查看日志的最后几行
四、删除容器(删除容器前,需要先停止容器)
命令docker stop 容器id
//停止容器
命令docker rm 容器id
docker stop $(docker ps -qa)
//停止所有的容器
docker rm $(docker ps -qa)
//删除所有的容器
五、启动停止的容器
命令docker start 容器id
//启动停止的容器
六、以守护模式运行容器。
在运行时加-d(Deamonized)就可以使容器以守护态运行,可以理解为后台运行,sudo docker run -d 镜像
当用sudo docker run -it 镜像
进入交互模式后,可以使用ctrl+P+Q使镜像后台运行。
那么后台运行的程序或者守护进程怎么进入容器内部做交互呢。
七、进入运行的容器内部
当容器运行在后台时,我们可以使用docker attach 容器名
来进入容器的交互模式。有意思的是,如果多人同时用着命令的话,那么大家会进入同一个终端,可以看到别人的操作,也可以助他一臂之力让他在输命令的时候总是多敲字母,以至于气到想砸键盘。
嗯嗯!当然作为一个好人,全程闭眼玩家,我们是不能这么干的,我们要使用docker exec -it 容器名
进入回话,当然在容器名后边也可以跟上交互的程序比如docker exec it 容器名 /bin/bash
。
八、拷贝数据,文件到容器内部
数据交互肯定是少不了的,我们要想从宿主机拷贝文件到容器内可以执行
docker cp /opt/test.txt [容器名]:/home
//把宿主机/opt目录下的test.txt文件复制到容器的/home目录下
[容器名]:/home/test.txt docker /tmp
//把容器的/home目录下的test.txt复制到宿主机的 /tmp 目录下
九、查看容器的日志信息
sudo docker logs 容器名