run
start/stop/restart
kill
rm
pause/unpause
create
exec
ps
inspect
top
attach
events
logs
wait
export
port
commit
cp
diff
login
pull
push
search
images
rmi
tag
build
history
save
import
info|version
info
version
Mac 上 Docker 的安装和使用初探 macOS 安装 Docker
docker run -d -p 127.0.0.1:3306:3306 \
--name mysql \
-v /Users/zicongcai/04-Dev/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD="123zxc" mysql:latest
使用宿主机 IP 才能用它来远程访问:
docker run -d -p 192.168.1.186:3306:3306 \
--name mysql \
-v /Users/zicongcai/04-Dev/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD="123zxc" mysql:latest
查看 Docker 中的 MySQL 容器映射到的宿主 IP:
docker port mysql 3306
腾讯云 Docker 中的 MySQL 容器:
docker run -d -p 127.0.0.1:3306:3306 --name mysql -v /usr/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="123zxc" mysql:8.0
Mac 上 Docker 的安装和使用初探 mysql 镜像使用
docker pull mysql:8.0
Docker以镜像为基础创建启动容器的方式为:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
启动成功后会在终端输出容器的ID,启动MySQL容器的脚本为:
docker run -d -p 127.0.0.1:3306:3306 \
--name mysql \
-v /Users/zengjing/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=”123456” mysql:latest
可以通过 docker ps -a
查看容器运行的情况。
参数说明:
-d
表示容器将以后台模式运行,所有I/O数据只能通过网络资源或者共享卷组来进行交互。-p 127.0.0.1:3306:3306
将主机(127.0.0.1)的端口3306映射到容器的端口3306中。这样访问主机中的3306端口就等于访问容器中的3306端口。--name mysql
给容器取名为 mysql,这样方便识别。-v /Users/zengjing/docker/mysql/data:/var/lib/mysql
将本机的文件目录挂载到容器对应的目录(/var/lib/mysql
)中。这样可以通过数据卷实现容器中数据的持久化。-e MYSQL_ROOT_PASSWORD="123456"
, -e表示设置环境变量,此处设置了mysql的root 用户的访问密码为 123456。mysql:latest
表示使用 mysql 的最新镜像启动一个容器。
完成上面的步骤之后就可以使用MySQL的客户端工具使用了,连接信息如下:
Host: 127.0.0.1
Port: 3306
UserName: root
Password: 123456
Download MySQL Workbench Mac 下安装 mysql 服务及基于 workbench 的使用方法
DOCKER – HOW TO CONNECT TO A MYSQL RUNNING CONTAINER
Bash into the running container and run MySQL client.
- Bash into the running MySQL container:
$ docker exec -t -i <container_name> /bin/bash
- Run MySQL client:
$ mysql -u “<useranme>” -p
$ mysql -u root -p mysql
// 第1个mysql是执行命令,第2个mysql是系统数据名称
- 在 mysql 控制台执行:
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
// root是用户名,%代表任意主机,'123456'指定的登录密码(这个和本地的root密码可以设置不同的,互不影响)
mysql> flush privileges;
// 重载系统权限
mysql> exit;
- 添加防火墙规则,允许 3306 端口
$ iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
// 查看规则是否生效
$ iptables -L -n
// 或者
$ service iptables status
// 此时生产环境是不安全的,远程管理之后应该关闭端口,删除之前添加的规则
$ iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
另外,上面为 iptables 添加/删除规则都是临时的,如果需要重启后也生效,需要保存修改:
$ service iptables save
// 或者
$ /etc/init.d/iptables save
另一种方法是:
$ vi /etc/sysconfig/iptables
// 加上下面这行规则也是可以的
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
可部分参考:远程连接腾讯云Centos系统的MySQL数据库
使用 Dockerfile 构建 Docker 镜像 docker 构建 java、tomcat、mysql 生产环境镜像
在 docker 中制作自己的 JDK + tomcat 镜像(已保存到印象笔记)
docker run -d -p 127.0.0.1:23306:3306 --name mysql3 -e MYSQL_ROOT_PASSWORD="123zxc" mysql:8.0
docker exec -it mysql2 /bin/bash
mysql -uroot -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
CREATE USER 'game'@'localhost' IDENTIFIED BY '123zxc';
GRANT ALL PRIVILEGES ON *.* TO 'game'@'localhost' WITH GRANT OPTION;
CREATE USER 'game'@'%' IDENTIFIED BY '123zxc';
GRANT ALL PRIVILEGES ON *.* TO 'game'@'%' WITH GRANT OPTION;
select user,host from mysql.user;
change log:
- 创建(2017-09-11)
- 更新(2017-11-08)