mysql容器化运行
概述
在当下,容器化大行其道的背景下,越来越多的服务及架构往容器化迈进
对数据库容器化也是在不断的演进中
开干
env
- centos7.x
- docker-19.x
mysql-docker
pull images
docker pull mysql:8.0.26
vether的形式
docker run -d --restart=always --name mysql \
-e MYSQL_ROOT_PASSWORD=321321 -p 3306:3306 -p 33060:33060 \
mysql:8.0.26 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
docker run -d --restart=always --name mysql \
-e MYSQL_ROOT_PASSWORD=321321 -p 13306:3306 \
mysql:8.0.26 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
只需要暴露3306端口即可
network host
docker run -d --restart=always --name mysql \
--net=host \
-e MYSQL_ROOT_PASSWORD=321321 \
mysql:8.0.26 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
expose的端口,在宿主机上开启监听
practices
//本地pull image
[root@c7-20-20 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8.0.26 0716d6ebcc1a 5 months ago 514MB
//run image
[root@c7-20-20 ~]# docker run -d --restart=always --name mysql \
> -e MYSQL_ROOT_PASSWORD=321321 -p 3306:3306 -p 33060:33060 \
> mysql:8.0.26 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
df6fc77624d0fe3863cecbcd6fce4ff351c4d27e6c904cf888209b1c3aa6044b
//check running container
[root@c7-20-20 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
df6fc77624d0 mysql:8.0.26 "docker-entrypoint.s…" 5 seconds ago Up 3 seconds 0.0.0.0:3306->3306/tcp, 0.0.0.0:33060->33060/tcp mysql
//check listen port
[root@c7-20-20 ~]# ss -lnt
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 [::]:33060 [::]:*
LISTEN 0 128 [::]:3306 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
//容器的端口映射情况
[root@c7-20-20 ~]# docker port df6fc77624d0
3306/tcp -> 0.0.0.0:3306 容器3306 map-> x:3306
33060/tcp -> 0.0.0.0:33060