docker容器操作

一、创建容器(基于镜像)

新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。

#格式:docker create [选项] 镜像
#常用选项:
-i:让容器的输入保持打开
-t:让 Docker 分配一个伪终端
-d:后台守护进程的方式运行

#示例:
docker create -it nginx:latest /bin/bash(command)#加载的是shell环境

md5加密

二、启动容器

1、docker start

#格式:docker start 容器的ID/名称
docker start    4bf84858083e
docker ps -a

在这里插入图片描述

2、一次性执行—— docker run

加 -d 选项让 Docker 容器以守护形式在后台运行。并且容器所运行的程序不能结束。

#示例1:执行后退出
docker run centos:7 /usr/local/bash -c ls /   

#示例2:执行后不退出,以守护进程方式执行持续性任务
docker run -d centos:7 /usr/local/bash -c "while true;do echo hello;done" 

查看:docker logs (-f) 名称id

在这里插入图片描述

三、进入容器

1、使用run(一次性)

docker run -it nginx:latest /bin/bash

在这里插入图片描述

2、exec(容器必须为开启状态)

docker exec -it 容器ID /bin/bash

在这里插入图片描述

exec和shell 是两种运行模式

PS:
docker run -it会创建前台进程,但是会在输入exit后终止进程。
docker attach 会通过连接stdin,连接到容器内输入输出流,会在输入exit后终止容器进程.
docker exec -it 会连接到容器,可以像ssH一样进入容器内部,进行操作,可以通过exit退出容器,不影响容器运行。

查看容器的ip——docker inspect,可以使用ssh+ip进入容器内部

在这里插入图片描述
在这里插入图片描述

四、停止容器

#终止容器运行
格式:docker stop 容器的ID/名称
docker stop 4bf84858083e

docker ps -a

在这里插入图片描述

六、容器导出(相当于快照)

docker export 容器ID >文件名

示例:
docker export 容器ID > nginx_lastest

在这里插入图片描述

七、容器导入(生成镜像)

docker import 导出的文件名(容器)指定镜像名称
#导入格式:cat 文件名 | docker import – 镜像名称:标签
示例:
docker import nginx_lastest nginx:test #导入后会生成镜像,但不会创建容器

在这里插入图片描述

八、容器删除

#格式:docker rm [-f] 容器ID/名称

1.#不能删除运行状态的容器,只能-f强制删除,或者先停止再删除
docker rm 容器id

2.#已经退出的容器,可以直接删除
docker rm 容器id

3.#基于名称匹配的方式删除
docker rm -f 名称


4.#删除所有运行状态的容器
docker rm -f `docker ps -q`

5.#删除所有容器
docker rm -f `docker ps -aq`

6.#有选择性的批量删除 (正则匹配)
docker ps -a |awk ' {print "docker rm "$1}'| bash

7.#删除退出(exit)状态的容器
for i in `dockef ps -a l grep -i exit / awk '{print $1}' '; do docker rm -f $i;done

九、容器打包为镜像

docker run -it --name Nginx.01 nginx:latest /bin/bash

docker commit 容器id nginx-v1beta

在这里插入图片描述

扩展

1、自定义一个容器

docker run -it --name nginx
-v /data_nginx/ :/usr/local/nginx/ conf
-v /log_nginx:/usr/local/nginx/ logs
log-driver=json-file
log-opts max-size=500m
log-opts max-file=3
-p 81:80
-p 8443:443
–network ky17
–ip 172.18.0.10
nginx : latest

2、日志问题

##当日志占满之后如何处理
#清除日志

#!/ bin/bash
logs=$ (find /var/lib/docker/containers/ -name *-json.log* )
for log in $logs
do
cat /dev/null > $log
done

###设置docker日志文件数量及每个日志大小
#vim /etc/docker/daemon.json
{
“registry-mirrors”: [ “http://f613ce8f.m.daocloud.io”],
“log-driver” : “json-file”,
“log-opts” : { “max-size” : “500m”, “max-file” : “3”}
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值