现在docker容器非常火,主要是docker非常轻量级,当技术人员想研究,学习一些新技术时,又不想去搭建环境,这个时候docker就是一个非常好的选择,例如,搭建一个redis,mysql数据库环境,安装好docker的包,只需要从官网拉取对应的镜像包,启动一个docker容器就好
docker pull mysql
docker run --name mysql5.7.28 -e MYSQL_ROOT_PASSWORD=Root@123 -d -it mysql:5.7.28
两条命令就创建好一个mysql环境了,非常快捷,当然这个是测试环境,如果要到生产环境,在容器里跑mysql数据库,要考虑的东西就太多了,如果容器异常挂掉,再也起不来,mysql数据库怎么办,不可能向应用一样,再创建一个新的mysql容器就解决问题的,关键的问题,要解决无论什么时候,Mysql的数据不能丢失。
容器建好之后,怎么才能进入docker容器呢?
基本上有3种方法
第一种:使用docker attach进入Docker容器
这种方法,我个人不太喜欢,因为有时候进入容器的时候,会卡住,一直没找到原因
docker attach 7b20f88dc2fe
第二种:使用SSH进入docker容器
这种方式也是有其缺陷的,例如密码和密钥的管理,需要你打包到docker镜像里,如果SSH爆出有新的漏洞,还得升级SSH,也是非常麻烦的。
第三种:nsenter进入Docker容器
使用nsenter进入docer容器,我个人非常喜欢,而且还有社区人员将nsenter进行包装,使用起来更方便,例如docer-enter就是一个非常好用的工具,给大家演示一下
docker-enter 7b20f88dc2fe
那docer-enter怎么安装呢,下面详细说明一下
wget https://www.kernel.org/pub/linux/utils/util-linux/v2.27/util-linux-2.27.tar.gz
tar -zxvf util-linux-2.27.tar.gz
cd util-linux-2.27
./configure --without-ncurses && make nsenter
cp nsenter /usr/local/bin
/usr/local/bin目录下面,创建docker-enter的bash脚本, 内容如下:
脚本内容如下所示,docker-enter脚本附上可执行的权限
#!/bin/sh
if [ -e $(dirname "$0")/nsenter ]; then
NSENTER=$(dirname "$0")/nsenter
else
NSENTER=nsenter
fi
if [ -z "$1" ]; then
echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"
echo ""
echo "Enters the Docker CONTAINER and executes the specified COMMAND."
echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."
else
PID=$(docker inspect --format "{{.State.Pid}}" "$1")
if [ -z "$PID" ]; then
exit 1
fi
shift
OPTS="--target $PID --mount --uts --ipc --net --pid --"
if [ -z "$1" ]; then
# No command given.
# Use su to clear all host environment variables except for TERM,
# initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
# and start a login shell.
"$NSENTER" $OPTS su - root
else
# Use env to clear all host environment variables.
"$NSENTER" $OPTS env --ignore-environment -- "$@"
fi
fi
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。