docker容器的进入和退出
docker容器的进入 退出
容器的进入
进入容器我们学习三种方法:
- 创建容器的同时进入容器
- 手工方式进入容器
- 生产方式进入容器
创建容器的同时进入容器
命令格式:
docker run --name [container_name] -it [docker_image] /bin/bash
docker 容器启动命令参数详解
# --name:给容器定义一个名称 # -i:则让容器的标准输入保持打开。 # -t:让docker分配一个伪终端,并绑定到容器的标准输入上 # /bin/bash:执行一个命令
命令演示:
$ docker run -it --name panda-nginx nginx /bin/bash
#进入容器后
root@7c5a24a68f96:/# echo "hello world"
hello world
root@7c5a24a68f96:/# exit
exit
手工方式进入容器
命令格式:
docker exec -it 容器id /bin/bash
#效果演示:
$ docker exec -it d74fff341687 /bin/bash
生产方式进入容器
我们生产中常用的进入容器方法是使用脚本,脚本内容如下
#!/bin/bash
#定义进入仓库函数
docker_in(){
NAME_ID=$1
PID=$(docker inspect --format {{.State.Pid}} $NAME_ID)
nsenter --target $PID --mount --uts --ipc --net --pid
}
docker_in $1
直接执行的话是没有执行权限的所以需要赋值权限
#赋权执行
$ chmod +x docker_in.sh
#进入指定的容器,并测试
$ ./docker_in.sh b3fbcba852fd
注意:Linux,Windows文件相互拷贝会遇到的问题:
-bash: ./docker_in.sh: /bin/bash^M: 解释器错误: 没有那个文件或目录
这个问题大多数是因为你的脚本文件在windows下编辑过。windows下,每一行的结尾是\n\r,而在linux下
文件的结尾是\n,那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字
符\r,用cat -A docker_in.sh时你可以看到这个\r字符被显示为^M,这时候只需要删除这个字符就可以了。
可以使用命令 sed -i 's/\r$//' docker_in.sh
容器的退出
# 方法一:
exit
# 方法二:
Ctrl + D