docker容器的进入和退出

docker容器的进入 退出

容器的进入

进入容器我们学习三种方法:

  1. 创建容器的同时进入容器
  2. 手工方式进入容器
  3. 生产方式进入容器

创建容器的同时进入容器

命令格式:
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
posted @ 2020-11-07 15:25  TR_Goldfish  阅读(1266)  评论(0编辑  收藏  举报