Docker之容器管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38151011/article/details/90265462

一、创建容器

  1.以ubuntu:14.04作为基础镜像,创建一个容器test1

docker create –name test1 -it ubuntu:14.04

    2.使用docker ps -l命令查看,test1的状态

docker ps -l

二、启动容器

1.没有容器,基于一个镜像启动新的容器

docker run -it –name test ubuntu:14.04

 2.宿主机本来有一个容器,但是容器处于一个非运行的状态,需要把这个非运行状态的容器启动起来。

docker start e6913e52c5ad

问题:

 1.以ubuntu:14.04作为基础镜像,启动一个容器test2,使用docker ps -l命令查看test1的状态。

docker run –name test2 -d ubuntu:14.04

 2.以ubuntu:14.04作为基础镜像,启动一个容器test3,并安装新的程序nginx

docker run –name test3 ubuntu:14.04 sh -c "apt-get update && apt-get install -y nginx"

 

docker ps -l

3.以ubuntu:14.04作为基础镜像,以交互的方式启动容器test4

 docker run ­­name test4 -it ubuntu:14.04

进入容器中,在/root目录下新建一个文件1.txt,然后点击ctrl+p+q来退出但是不结束交互式容器,然后使用docker ps -l命令来查看test4的状态

cd /root

touch 1.txt

5.以ubuntu:14.04作为基础镜像,启动守护式容器test5,让其在后台一直输出hello docker,查看容器的日志,看看hello docker 是否正常输出。

docker run –name test5 -d ununtu:14.04 /bin/bash -c "while true;do echo hello docker;sleep 1;done; "

docker ps -l

docker logs 298a87d6d3f5

使用start命令来启动刚刚创建的test1,并且用docker ps -l命令来查看容器状态有什么变化

docker start test1

docker ps -l

三、查看本地容器信息

1.

(1)列出当前所有正在运行的container

docker ps

(2)列出所有的container

docker ps -a

(3)列出最近一次启动的container

docker ps -l

(4)列出最近创建的5个容器信息

docker ps -n 5

2.

(1)查看容器test5中的详细信息

     docker inspect test5

           

(2)查看容器test5的IP地址

docker inspect –format=’{{.NetworkSettings.Networks.bridge.IPAddress}}’test5

四、停止、杀死、重启某个docker容器

1.试着杀死,停止,重启某个docker容器

docker kill test1

docker stop test3

docker restart test3

2.强制停止一个容器

使用docker kill容器id或者name来强制停止一个容器

五、查看指定容器的日志记录

1.一直跟踪容器test5的日志变化,并且在返回结果上加上时间戳

docker logs -t -f test5

2.查看容器test5最近30分钟的日志

docker logs -t –since 30m test5

3.查看容器test5的日志最后10行,并且在返回结果上加上时间戳

docker logs -t -f --tail 10 test5

六、删除容器

1.删除所有容器

docker rm $(docker ps -a -q)

2.删除无法删除的容器

docker rm -f $(docker ps -a -q)

3.查看是否所有的容器都被删除

4.以ubuntu:14.04作为基础镜像,启动一个容器test6,并挂载数据卷/home,删除容器nginx01,并删除容器挂载的数据卷

七、进入容器

1.用docker attach进入一个已经运行的容器

docker attach test5

2.用docker exec进入一个已经运行的容器

docker exec –i -t test4  /bin/bash

3.使用nsenter工具进入。一般来说,需要首先下载nsenter这个工具,它包含在util-linux软件包版本。

(1)首先访问该网址找到nsenter工具

https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.32/

(2)下载nsenter工具的源码到我们的主机上

#wget https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.32/util-linux-2.32.tar.gz

(3)解压.tar.gz包

# tar -xzvf util-linux-2.32.tar.gz

(4)进入util-linux-2.32的目录

# cd util-linux-2.32/

(5)输入./configure --without-ncurses命令进行配置

(6)输入命令make nsenter来编译nsenter

(7)复制nsenter到/usr/local/bin路径下

# cp nsenter /usr/local/bin

(8)运行一个容器,并且找到找到容器的进程PID号(.state.Pid)

docker run -itd --name test7 ubuntu:14.04   

docker inspect test7

(9)通过得到的这个PID,就可以连接到这个容器:

nsenter --target  $PID  --mount --uts   --ipc   --net   --pid

(10)在容器中可以查看用户和进程的相关信息

ps -ef

(八)导入容器和导出容器

1.把test7容器导出到1.tar中。

docker export test7/ID> 1.tar

2.把1.tar导入,并在在导入时候其打上标签test8:latest

docker import 1.tar test8:latest

 

猜你喜欢

转载自blog.csdn.net/qq_38151011/article/details/90265462