以命令行方式,进入运行中的容器
先通过docker ps找到运行中容器的容器ID
再通过如下方式进入
docker exec -it /bin/bash
或
docker exec -it --privileged=true /bin/bash
--privileged=true表示以特权模式进入。如果你进行某些操作出现类似如下的没有权限的提示,可以试试以特权模式进入,再重试之前的操作
15 Feb 06:46:29 ntpdate[60170]: Can't adjust the time of day: Operation not permitted
查看时间
date
date +'%Y/%m/%d %H:%M:%S %A %Z'
date +"%Y/%m/%d %H:%M:%S %A %Z"
date -R
date "+%Z"
通过别名方式更改ls -l的日期格式
# 显示当前已存在的alias
alias
修改ls的日期格式
alias ls='ls --color=auto --time-style +"%T %F"'
查看效果
ls -l
ll
通过别名方式更改date的默认日期格式
alias date='date +"%Y/%m/%d %H:%M:%S %A %Z"'
查看效果
date
上面的方法只是临时修改,重启后就会失效,要想永久生效,需要修改 /root/.bashrc 文件。
alias ls='ls --color=auto --time-style +"%T %F"'
alias date='date +"%Y/%m/%d %H:%M:%S %A %Z"'
删除别名
unalias ls
同步时间
- 命令行方式进入docker容器
docker exec -it --privileged=true /bin/bash
这里注意--privileged=true,表示以特权模式进入,如果是非特权模式,可能在执行时间同步命令时,出现权限不足的错误提示
- 使用
ntpdate -u ntp1.aliyun.com命令同步时间
若不加上-u参数, 会出现以下提示:no server suitable for synchronization found
-u:从man ntpdate中可以看出-u参数可以越过防火墙与主机同步;
如果ntpdate 命令不存在,则先安装apt-get update && apt-get install -y ntpdate
ntp常用服务器
国内
cn.pool.ntp.org 中国开源免费NTP服务器
ntp1.aliyun.com 阿里云NTP服务器
ntp2.aliyun.com 阿里云NTP服务器
time1.aliyun.com 阿里云NTP服务器
time2.aliyun.com 阿里云NTP服务器
国外
time1.apple.com 苹果NTP服务器
time2.apple.com 苹果NTP服务器
time3.apple.com 苹果NTP服务器
time4.apple.com 苹果NTP服务器
time5.apple.com 苹果NTP服务器
time1.google.com 谷歌NTP服务器
time2.google.com 谷歌NTP服务器
time3.google.com 谷歌NTP服务器
time4.google.com 谷歌NTP服务器
pool.ntp.org 开源免费NTP服务器
使用定时任务定期同步时间
apt-get update && apt-get install -y cron
echo "*/20 * * * * /usr/sbin/ntpdate -u ntp1.aliyun.com >/dev/null &" >> /var/spool/cron/root
更改时区
使用 tzselect 更新时区,如果没安装,则先安装apt update && apt install tzselect
执行命令tzselect, 会给出一系列的选项,让你选择,输入对应数字即可选择
最后tzselect没有直接给你设置上去,而是给出提示(红线部分既是)
将TZ='Asia/Shanghai'; export TZ在终端直接执行一下就OK了
没有vim编辑器
apt-get update && apt-get install -y vim
查看linux相关信息
cat /proc/version: 该文件记录了linux内核发行的版本、用于编译内核的gcc版本、内核编译的时间、以及内核编译者的用户名
uname -a: 是一个打印系统信息的工具,包括:内核名称、版本号、系统详细信息以及所运行的操作系统等
cat /etc/os-release: 可以看到linux发行版信息
更新ubuntu源
备份原本的源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
将下面的新源信息,复制到剪切板
先要通过cat /etc/os-release,看具体的版本信息, 再到 ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 选择对应版本的源
通过vim编辑器,用新源信息替换旧源信息
vim /etc/apt/sources.list
然后更新sudo apt-get update这里是更新了源信息
如果你需要将所有软件的版本都更新,那要执行apt-get upgrade(linux有必要更新,docker一般无需保持最新)
命令查找文件与查找命令所在位置
find / -name test
# / 表示从根目录开始查找
# -name 表示基于文件名查找
# test 表示查找的文件名为test
which git
# 表示查找git命令所在位置
查看当前的用户
查看当前用户名
whoami
查看当前用户id个gid
id
用户id和gid的作用
UID和GID是Linux系统中用于标识身份的数字标识符。每个用户和组都有一个唯一的UID和GID,通过这些标识符可以在系统级别上对用户和组进行身份验证和授权。在Linux系统中,每个文件和目录都有一个所有者和所属组,文件和目录的权限只能由文件拥有者或管理员来设置和更改。因此,需要对用户和用户组进行管理。
修改用户的UID和组的GID
sudo usermod -u [新UID] [用户名]
sudo groupmod -g [新GID] [组名]
Linux系统中UID和GID详解_uid gid-CSDN博客
Dockerfile创建用户与切换用户
Dockerfile
# 基础镜像
FROM ubuntu:16.04
# 定义build参数,并设置默认值
ARG user=test
# 元数据
LABEL maintainer="fzzjoy" email="fzz_joy@163.com"
# 安装依赖
RUN apt-get update && apt-get install -y sudo
# 添加用户:赋予sudo权限,指定密码
RUN useradd --create-home --no-log-init --shell /bin/bash ${user} \
&& adduser ${user} sudo \
&& echo "${user}:1" | chpasswd
# 改变用户的UID和GID
# RUN usermod -u 1000 ${user} && usermod -G 1000 ${user}
# 指定容器起来的工作目录
WORKDIR /home/${user}
# 指定容器运行时的默认登录用户
USER ${user}
# RUN是构建时执行
RUN echo "${user}" > world.txt
dockerfile-新增用户并赋予sudo权限以及指定密码_dockerfile sudo-CSDN博客
linux用户分类
Linux下用户分为3类:超级用户(root)、系统用户、普通用户。
超级用户(root)
超级用户的用户名为root,它具有一切操作权力,因此为安全起见,建议不要轻易的在root账户下面对文件进行操作。在Linux操作系统的字符界面,root账户的提示符为#,且默认情况下,root用户的UID为0。
系统用户
系统用户是Linux系统正常工作所必需的内建的用户,一般是用于管理服务所用。系统用户不能用来登陆,如bin、daemon、lp等用户。系统用户的UID一般为1~499,它们的shell为/sbin/nologin。
普通用户
普通用户是为了让使用者能够使用Linux系统资源而建立的,用户新建的账号一般就是普通账号。在Linux操作系统的字符界面,普通用户的提示符为$,且普通用户的UID默认为1000~60000。
linux命令useradd添加用户详解 - irisrain - 博客园 (cnblogs.com)
ubuntu用户添加adduser, useradd并给予sudo权限_sudo adduser-CSDN博客
查看docker容器日志
docker logs -t --tail 15 3b94008edc86
# -t 按时间输出
# --tail 15 最后15条
# 3b94008edc86 容器id
docker logs -f -t 3b94008edc86
# -f 一直监控输出
# -t 按时间输出
# 3b94008edc86 容器id
在宿主机查看容器ip
docker inspect 9368f78055ca | findstr "IPAddress"