当前位置:   article > 正文

docker容器操作_docker run 容器

docker run 容器

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

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

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

#示例:
docker create -it nginx:latest /bin/bash(command)#加载的是shell环境
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

md5加密

二、启动容器

1、docker start

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

在这里插入图片描述

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

三、进入容器

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退出容器,不影响容器运行。
  • 1
  • 2
  • 3
  • 4

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

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

四、停止容器

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

docker ps -a
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

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

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

九、容器打包为镜像

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

###设置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”}
}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/87632
推荐阅读
相关标签
  

闽ICP备14008679号