docker容器的使用

docker容器的使用

  1. 启动容器

生产上的容器启动时应该限定CPU、内存、挂载卷、容器名称。以在不带swap的物理机上启动一个2C4G的mysql容器为例,镜像名称为mysql:v1.1:

docker run -c=0,1 -m=4096M -v /mount_dir/logs:/mnt/logs -v /mount_dir/files:/mnt/files --net=none --name vip -d mysql:v1.1

参数说明:

-c=0,1该参数设置容器使用的cpu核,这里必须指定cpu核的编号,而不能简单的指定个数。

-m=4096M 该参数设置容器的最大使用内存,因为是用OOM机制实现,一旦超过该内存,容器会被暂停。

-v /mount_dir/logs:/mnt/logs 该参数设置容器的volume映射,所有容器中对目录/mnt/logs的读写操作都会转化为对宿主机上目录/mount_dir/logs目录的操作。这是容器实现持久化的推荐方案。

--net=none 设置网络模式为none。因为要手动创建vlan网络,因此容器启动时,是需要一个回环设备lo。

--name vip设置容器的名称为vip。若不指定,则会有一个随机名称。

-d mysql:v1.1 该参数说明以后台方式启动容器。生产中所有的容器都应使用该方式启动。-d后面跟着的mysql:v1.1是镜像的名称。

  1. 查看镜像

查看宿主机拥有哪些镜像:

docker images;

  1. 查看容器

查看正在运行着的容器:

docker ps;

查看所有容器:

docker ps –a;

  1. 进入到容器

进入到容器中有两种方式:

1. docker attach $container

该命令只适用于那些容器的启动命令是/bin/bash的,否则attach进容器后什么都做不了;

2. docker exec --it $container /bin/bash

该命令适用于所有容器,通过在容器中另外执行/bin/bash命令,并获取标准输入输出,和容器内部进行交互。但是该命令执行的命令不会被容器记录。

  1. 查看容器中运行的进程

docker top $container;

  1. 打印容器标准输出

该命令可以将容器中的标准输出、标准错误输出全部打印出来。凡是容器进程在标准输出和标准错误输出上的历史记录都会被打印。

docker logs $container;

  1. 停止容器、删除容器

停止容器:

docker stop $container;

删除容器:

docker rm $container;

删除容器的前提必须是容器已经停止,否则强行删除运行中的容器执行如下命令:

docker rm -f $container;

  1. 保存容器

容器是动态的,一旦被删除就不会有任何记录留下。如果需要对容器进行保存,就需要将容器固化成镜像,采用如下命令:

docker commit $container $image;

例如:将容器test保存为hongyang/test:1.0.0

docker commit test hongyang/test:1.0.0;

  1. 传输镜像

有时候,需要把镜像制作成tar包以方便传输,或者把tar包装在成镜像:

docker save $image > $image.tar;

例如,保存mysql镜像:

docker save mysql:latest > /tmp/mysql.tar

装载镜像:

docker load < $image.tar;

  1. 删除镜像

docker rmi $image;

  1. 拷贝容器文件

Docker支持在宿主机和容器之间相互拷贝文件:

将物理机上文件(以/tmp/test为例)拷贝到容器中:

docker cp /tmp/test $container:/tmp/ ;

将容器中的文件拷出:

docker cp $container:/tmp/test /tmp/ ;

你可能感兴趣的:(软件测试)