2020年7月

  • yum install 软件说不存在
安装Remi存储库
dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
  • 安装htop
centos7
yum install epel-release -y
yum install htop -y

centos6
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
yum install htop -y

  • 查看指定端口的占用情况
➜  ~ lsof -i:8100
COMMAND   PID  USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
nginx    9622 nginx   10u  IPv4   1411667      0t0  TCP *:xprint-server (LISTEN)
nginx    9623 nginx   10u  IPv4   1411667      0t0  TCP *:xprint-server (LISTEN)
nginx    9624 nginx   10u  IPv4   1411667      0t0  TCP *:xprint-server (LISTEN)
  • 查看所有端口的占用情况
[root@localhost ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      894/sshd            
tcp6       0      0 :::80                   :::*                    LISTEN      2105/docker-proxy   
tcp6       0      0 :::22                   :::*                    LISTEN      894/sshd

  • 查询端口占用情况
[root@localhost ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      894/sshd            
tcp6       0      0 :::80                   :::*                    LISTEN      2105/docker-proxy   
tcp6       0      0 :::22                   :::*                    LISTEN      894/sshd

  • 先执行 (需要执行很久很久)
apt-get update
  • 再执行
apt-get install vim

上面的失败了, 下面的一种方法继续尝试

在Linux里面依次输入下面的命令:1,下载最新的yum-3.2.28.tar.gz并解压

wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz
tar xvf yum-3.2.28.tar.gz  
  • 进入目录,运行安装
cd yum-3.2.28 
yummain.py install yum
  • 最后更新系统。
yum check-update
yum update
yum clean all

我看到过这样的一句话 在创建容器前,我们创建一个数据卷mysql-volume,把它挂载到mysql容器中,实现数据持久化 那么如果不创建, 是否重启mysql容器数据就丢失了, 为此特地测试了停止容器和重新启动容器以及关机后开机重新启动容器, 实际测试是数据没有丢失的, 但是为什么还是需要增加一个新加卷呢, 我想应该是怕容器损坏, 或者需要修改容器的配置, 那么意味着数据可以需要导出来, 而切换挂载的数据卷应该就会方便很多吧

通过构建的mysql2的dockerfile副本执行的容器创建

docker run -itd -p 3306:3306 --name my_mysql2 -e -d mysql2:Dockerfile --character-set-server=utf8mb4 --collation_server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password

一条命令实现启动容器并设置字符集, 兼容的加密方式

docker run --name mysql22 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345 -d mysql --character-set-server=utf8mb4 --default-authentication-plugin=mysql_native_password

数据挂载到本地, 配置文件读取挂载的, 设置好字符集和加密方式

mkdir -vp /data/docker/mysql/data
touch /data/docker/mysql/my.cnf

建议先执行拷贝配置文件
docker run -v /data/docker/mysql/data:/var/lib/mysql --name mysql22 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345 -d mysql --character-set-server=utf8mb4 --collation_server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password
docker exec -it mysql22 /bin/bash
> cp /etc/mysql/my.cnf /var/lib/mysql
> exit
mv /data/docker/mysql/data/my.cnf /data/docker/mysql/my.cnf -y
这时候可以修改这个容器生成的配置文件后, 再删除掉容器
docker stop mysql22 && docker rm mysql22 && docker ps -a

docker run -v /data/docker/mysql/data:/var/lib/mysql -v /data/docker/mysql/my.cnf:/etc/mysql/my.cnf --name mysql_1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345 -d mysql --character-set-server=utf8mb4 --collation_server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password
  • 将一个已存在的容器修改为自启动
docker update --restart=always mysql_1
FlagDescription
no不自动重启容器. (默认value)
on-failure容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always在容器已经stop掉或Docker stoped/restarted的时候才重启容器