1.容器状态:
docker ps或者docker ps -a查看状态,本人容器中布置了两个数据库
(base) [root@VM-16-5-centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4c8ff1c8d6e mysql "docker-entrypoint..." 2 weeks ago Up 3 days 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
e0cd764d915e postgis/postgis "docker-entrypoint..." 2 weeks ago Up 3 days 0.0.0.0:5432->5432/tcp postgis
(base) [root@VM-16-5-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4c8ff1c8d6e mysql "docker-entrypoint..." 2 weeks ago Up 3 days 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
e0cd764d915e postgis/postgis "docker-entrypoint..." 2 weeks ago Up 3 days 0.0.0.0:5432->5432/tcp postgis
2.关于启停数据库,并再次查看状态验证
(base) [root@VM-16-5-centos ~]# docker stop mysql
mysql
(base) [root@VM-16-5-centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4c8ff1c8d6e mysql "docker-entrypoint..." 2 weeks ago Exited (0) 7 seconds ago mysql
e0cd764d915e postgis/postgis "docker-entrypoint..." 2 weeks ago Up 3 days 0.0.0.0:5432->5432/tcp postgis
(base) [root@VM-16-5-centos ~]# docker start mysql
mysql
(base) [root@VM-16-5-centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4c8ff1c8d6e mysql "docker-entrypoint..." 2 weeks ago Up 5 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
e0cd764d915e postgis/postgis "docker-entrypoint..." 2 weeks ago Up 3 days 0.0.0.0:5432->5432/tcp postgis
3.进入容器,查看容器结构
dockers exec -it
(base) [root@VM-16-5-centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e4c8ff1c8d6e mysql "docker-entrypoint..." 2 weeks ago Up 5 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
e0cd764d915e postgis/postgis "docker-entrypoint..." 2 weeks ago Up 3 days 0.0.0.0:5432->5432/tcp postgis
(base) [root@VM-16-5-centos ~]# docker exec -it mysql /bin/bash
root@e4c8ff1c8d6e:/# pwd
/
root@e4c8ff1c8d6e:/# ls
bin boot dev docker-entrypoint-initdb.d entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
容器内和系统结构是差不多的,在一定程度上可以理解为安装了一个新的虚拟机
4.容器中文件的备份
4.1备份文件到容器中
在该容器中使用cp命令即可
root@e0cd764d915e:/# cd /
root@e0cd764d915e:/# ls
bin dev docker-entrypoint.sh home lib64 mnt proc run srv tmp usr
boot docker-entrypoint-initdb.d etc lib media opt root sbin sys trajectory.sql var
root@e0cd764d915e:/# cp trajectory.sql /test.sql
root@e0cd764d915e:/# ls
bin dev docker-entrypoint.sh home lib64 mnt proc run srv test.sql trajectory.sql var
boot docker-entrypoint-initdb.d etc lib media opt root sbin sys tmp usr
4.2备份文件到宿主机上
需要在宿主机上输入命令
需要先退出容器CTRL+D
(base) [root@VM-16-5-centos ~]# docker cp postgis:/trajectory.sql /root/testXXXXX.sql
(base) [root@VM-16-5-centos ~]# ls
Blog-master.zip Clearn Javalearn PySpark-and-MLlib.zip python_All testXXXXX.sql
CentOS-7-x86_64-DVD-1810.iso GQ_shanghai miniconda3 PySparkStudy-master.zip Sparklearn trajectory20210924.sql
postgis:/trajectory.sql中postgis为容器名,通过docker ps -a可以查看NAMES,/trajectory.sql为容器中的目录加文件,注意是容器中
/root/testXXXXX.sql为备份的路径加文件名