在容器内运行命令
用户需要掌握在容器内运行命令的操作,便于更好的实现个性化的托管设置。
原理
在容器内运行命令之前,先列 出几个相关的原理:
- 容器内运行命令与 Linux 虚拟机内运行命令的原理基本一致
 - 容器内运行命令改变的是容器的文件系统
 - 容器内也可以切换用户
 - 容器内改变文件系统后,也需要考虑权限问题
 - 容器内安装或下载的软件包,若没有存放到持久化目录中,重建容器后这些增加的文件会丢失
 
进入容器
进入容器后,默认便可以运行 shell 命令。有两种进入容器的方法:
登录服务器运行命令
Docker 自身提供了进入了容器的操作指令 docker exec ,具体步骤:
- 确认容器的 shell 命令环境: bash, sh, ash 三者之一,大部分都是 bash
 - 服务器端运行 
docker ps找到容器名称,然后运行命令docker exec -it container_name bash 
在线运行命令
Websoft9 提供了可视化的在线运行容器命令的功能,它是 docker exec 的 Web 实现。
- 
Websoft9 控制台进入应用的详情页面,在 "容器" 标签页下点击
<>操作
 - 
在容器命令行控制台,点击 Connetc 按钮,开始连接
- Command:选择可用的命令执行(三选一,bash 绝大部分情况下都可用)
 - user: 默认 root(推荐)
 
 - 
成功连接,即可开始运行命令

 
安装软件包
容器内安装软件与 Linux 安装软件基本一致:
- 操作系统包管理器:apt, yum, dnf, pacman, zypper, apk 等
 - 手工下载编译安装
 - 程序语言安装包:pip, npm, yarn, gem 等
 
查看容器内配置
- 进程与服务:
top,ps aux - 用户:
cat /etc/passwd - 网络:
netstat -tulnp,ss -tuln 
权限处理
- 如果 Dockerfile 没有创建普通用户,容器就会默认以 root 用户权限运行。
 - 容器 root 与宿主机 root 是同一个用户,但容器 root 需加上 
--privileged=true才拥有宿主机同等权限 - 容器内可以通过 
su切换用户