Docker安装MySQL
docker 中下载 mysql
docker pull mysql
或
docker pull mysql:5.7
启动
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
或
docker run --name mysql-5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
-- 安装5.7时,第一次登录好像不需要密码
-
-name 代表容器名称
-
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
进入容器
docker exec -it mysql bash
或
docker exec -it mysql-5.7 bash
登录mysql
mysql -u root -p //回车输入密码
- 登录的时候报错 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
没找到解决办法,过一会儿重新输入又不报错了。。。可能是因为第一次不需要输入密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
添加远程登录用户,直接用root账号登录也行。
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
停止镜像
docker stop 镜像实例ID
查看所有容器(包括未启动的)
`docker ps -a
删除镜像实例
docker rm 镜像实例ID
当镜像实例已经存在时,重新启动镜像
docker start 镜像实例ID
Docker容器做端口映射报错
docker: Error response from daemon: driver failed programming external connectivity on endpoint lamp3 (46b7917c940f7358948e55ec2df69a4dec2c6c7071b002bd374e8dbf0d40022c): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 86 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.
解决方法
docker服务启动时定义的自定义链DOCKER被清除
重启即可systemctl restart docker