grep是一个强大的文本搜索工具,全称为"Globally search a Regular Expression and Print",它能够使用正则表达式搜索文本,并把匹配的行打印出来。grep的家族包括grep、egrep和fgrep,其中egrep是grep的扩展版本,支持使用扩展的正则表达式,而fgrep则是不使用正则表达式的版本。
grep的基本功能是搜索文本中的模式,并将匹配的行打印到屏幕上。它支持使用正则表达式来定义搜索模式,这使得grep非常灵活和强大。在Linux系统中,grep是许多系统管理员和程序员日常工作中不可或缺的工具之一
#查看容器列表,是否有上述命令冲突的容器名demo [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b1ad2b7aead nginx "/docker…" 2 minutes ago Up 2 minutes 80/tcp demo # 删除掉冲突容器 [root@docker ~]# docker rm -f demo demo # 重新查看容器列表是否已删除冲突容器 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES # 重新运行并查看 [root@docker ~]# docker run -itd --name demo busybox d40c8406a64f9e0d99f4aa4c89b7a9e64e3adeebb9d009017d6e67cadad9a392 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d40c8406a64f busybox "sh" 4 seconds ago Up 4 seconds demo
# 删除冲突容器,重新运行新容器 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 861f1072911f busybox "sh" 4 minutes ago Up 4 minutes 0.0.0.0:8081->80/tcp, :::8081->80/tcp demo [root@docker ~]# docker rm -f demo demo [root@docker ~]# docker run -itd --name demo1 -p8081:80 busybox e60a2952791654a35594f11c1518c28e05057193ca66f741a9fb00908381d27c [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e60a29527916 busybox "sh" 29 seconds ago Up 28 seconds 0.0.0.0:8081->80/tcp, :::8081->80/tcp demo1
1 2 3 4 5 6 7 8 9 10 11
# 修改待运行的容器,分配其他端口做映射 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3c9d644bf0da busybox "sh" 1 second ago Up 1 second 0.0.0.0:8081->80/tcp, :::8081->80/tcp demo # 修改预启动容器映射端口为8082,避免与已启动容器的银蛇端口8081冲突 [root@docker ~]# docker run -itd --name demo1 -p8082:80 busybox d899e505be962256b3594a450bb803845fedb750d097668206fb2f35d11bdbec [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d899e505be96 busybox "sh" 3 seconds ago Up 2 seconds 0.0.0.0:8082->80/tcp, :::8082->80/tcp demo1 3c9d644bf0da busybox "sh" 10 seconds ago Up 10 seconds 0.0.0.0:8081->80/tcp, :::8081->80/tcp demo
[root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 13c3df0e3938 mysql "docker-entrypoint.s…" 2 seconds ago Exited (1) 1 second ago mysql
查看mysql容器日志,提示缺少密码变量
1 2 3 4 5 6 7
[root@docker ~]# docker logs mysql|tail -n 1 2024-05-18 14:36:21+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified You need to specify one of the following: - MYSQL_ROOT_PASSWORD - MYSQL_ALLOW_EMPTY_PASSWORD - MYSQL_RANDOM_ROOT_PASSWORD 2024-05-18 14:36:21+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
[root@docker ~]# history |grep mysql 132 docker run -d --name mysql -e MYSQL_PASSWOD="000000" -e MYSQL_DATABASE='wordpress' mysql 156 docker run -d --name mysql -e MYSQL_ROOT_PASSWOLD="000000" -e MYSQL_DATABASE='wordpress' mysql
解决方式:使用正确设置ROOT 密码的环境变量MYSQL_ROOT_PASSWORD
1 2
[root@docker ~]# docker run -d --name mysql -e MYSQL_ROOT_PASSWORD="000000" -e MYSQL_DATABASE="wordpress" mysql 869aa9bcd396185297bd689ddaaa2f54f7d0897a251c3b0dede7a8af5fba8337
查看容器列表,发现mysql正常运行,可以排除环境变量的“键”没有问题
1 2 3
[root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c98e30d29e76 mysql "docker-entrypoint.s…" 3 seconds ago Up 1 second 3306/tcp, 33060/tcp mysql
以交互方式进入mysql容器内部,尝试登录到mysql数据库中
1 2 3 4 5 6
[root@docker ~]# docker exec -it mysql bash root@97c41310e9de:/# mysql -uroot -p000000 mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) root@97c41310e9de:/# exit exit
[root@docker ~]# docker run -d --name mysql -e MYSQL_ROOT_PASSWORD="000000" -e MYSQL_DATABASE="wordpress" mysql 869aa9bcd396185297bd689ddaaa2f54f7d0897a251c3b0dede7a8af5fba8337
查看容器列表,发现mysql正常运行,可以排除环境变量的“键”没有问题
1 2 3
[root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c98e30d29e76 mysql "docker-entrypoint.s…" 3 seconds ago Up 1 second 3306/tcp, 33060/tcp mysql
以交互方式进入mysql容器内部,尝试登录到mysql数据库中
1 2 3 4 5 6 7 8 9 10 11 12
[root@docker ~]# docker exec -it mysql bash root@fa39abadac00:/# mysql -uroot -p000000 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.27 MySQL Community Server - GPL Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
[root@docker ~]# docker run -d --name mysql -e MYSQL_ROOT_PASSWORD="000000" -e MYSQL_DATABASE="wordpress" mysql 869aa9bcd396185297bd689ddaaa2f54f7d0897a251c3b0dede7a8af5fba8337