docker创建和使用mysql
-
container
和image
是两种不同的概念,image即指存在的镜像,container指docker运行起来后image的实例。 -
当使用
docker kill
把某个正在运行的实例kill掉之后,再次运行,会提示:Error response from daemon: Conflict. The container name "/mysql" is already in use by container 39ea68e5eb77b97933bd25c4d330d75e710ba4ec4f4281013232e0eb0f0f266b. You have to remove (or rename) that container to be able to reuse that name..
此时除了换一个名字,还有一个方式就是使用
docker container rm <docker name>
的方式删除掉该container
,才能重新运行该命令。 -
创建一个
container
并启动的方式:docker run -p 12306:3306 --name mysql8.0 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
重要参数的解释:
-p 12306:3306
:将docker里面的3306端口映射到主机的12306端口--name
:指定启动mysql后的名称-e
:指定mysql启动的一些参数-d
:以deamon的方式启动mysql:8.0.2
:指定某个image的名称,或者直接使用imageId也是可以的。
-
docker ps
命令默认只显示正在运行的container
,使用docker ps -a
可以看到已经退出的container
,如果需要重新启动之前的container
,那么直接使用docker start [container_id]
就可以启动。 -
对于mysql的
docker
,注意需要将docker
的文件映射到主机,否则客户端可能无法连接。如果没有进行映射的话,可以使用docker exec -it mysql bash
命令连接到mysql