Docker学习【2】Docker容器
Docker容器
一、容器运行
1、容器运行
#docker run 是docker create与docker start命令的集合体,运行容器时先基于镜像创建容器,然后启动容器。
(1)启动新容器并打印日期
#运行的新容器也是一个进程,使用ps查看进程
(2)指定参数,分配bash交互终端
(3)docker run参数
#运行容器并设置环境变量
(4)自动启动容器
#添加--restart参数后容器终止被自动启动
(5)自定义名称的容器
#删除容器
(6)开启端口的容器
(7)使用curl工具访问容器终端
#终止容器、再次访问
##服务由docker容器提供,通过宿主机的端口向外网开放
(8)与宿主机共享目录的容器
#创建
#创建共享该目录的容器
#运行容器,并挂载共享目录,冒号前面的是宿主机目录,后面的是容器目录
二、进入容器
1、容器的三种状态
#运行状态(Up)、暂停状态(Paused)、终止状态(Exited)
(1)#运行状态
(2)#暂停状态
##暂停容器的本质是暂停容器中的服务
##docker unpause 是暂停状态的容器终止暂停
(3)#终止状态
2、docker attach与docker exec
#原生方式进入容器
(1)docker attach进入正在运行的虚拟输入设备
#Crul+P+Q退出容器不终止
(2)docker exec在宿主机上向*运行的容器*传输命令
#使用docker exec 命令进入容器执行exit命令不会终止容器
三、停止和删除容器
1、停止容器
(1)docker kill命令强制终止容器
(2)查看容器状态
(3)使用正则表达式根据运行状态的ID号关闭正在运行的容器
#另外的一种编写方法:
2、删除容器
#docker rmi 命令删除镜像
#docker rm 命令删除容器
(1)删除容器方法一
(2)删除容器方法二
#先创建三个容器,并启动其中一个:
#删除终止态的容器
#强制删除
(3)删除容器方法三
(4)删除容器方法四
#创建测试容器
# docker container prune:删除所有终止状态的容器
四、容器资源限制
1、限制容器内存资源:
#线程分配的内存没有超出最大限额
#线程分配的内存超出了最大限额
2、限制容器CPU资源
#运行两个容器并设置CPU权重
#使用docker starts 查看容器占用CPU情况
#使用agileek/cpuset-test镜像测试给容器指定某一棵CPU
3、限制容器Block I/O
(1)运行容器test001、test002、test003,其中,test001、test002读写磁盘的带宽是test003的两倍。
(2)运行容器,并限制容器对/dev/sda的写入速率
##查看写入速率