Docker基本使用
Docker包含了三个概念:
- 镜像(Image)
- 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
- 仓库(Repository):保存镜像、代码控制中心。
容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(exited)的容器重新启动。
因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。
启动docker:
systemctl start docker
查看docker状态:
systemctl status docker
创建并启动容器:
docker run 参数
容器再启动:
docker restart
查看当前运行的容器: (-a 表示 all,所有的)
docker ps
docker ps -a
删除容器(-f强制删除在运行的):
docker rm
docker rm -f
后台模式:
docker exec
清理停止的容器:
docker container prune
Docker 镜像
使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载
数据库查找:
docker search mysql
- NAME: 镜像仓库源的名称
- DESCRIPTION: 镜像的描述
- OFFICIAL: 是否 docker 官方发布
- STARS: 类似 Github 里面的 star,表示点赞、喜欢的意思。
- AUTOMATED: 自动构建
数据库下载:
docker pull mysql
镜像列表:
docker images
查找镜像:
docker search
拖取镜像:
docker pull
删除镜像
docker rmi
生成镜像
docker build
更新镜像:
docker commit
镜像导出和导入:
docker save > xxx.tar 57544a04cd1a
docker load < xxx.tar
其中-i或者<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
-
若是只想备份images,使用save、load即可
-
若是在启动容器后,容器内容有变化,需要备份,则使用export、import
Docker 容器
解决:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
原因:docker没有启动起来导致的,可以查询docker状态。
开机自动启动docker
systemctl enable docker
解决Access denied for user 'root'@'localhost'(using password:YES)
1.链接数据库配置-配置文件检查
2.mysql连接错误-连接属性测试
3.root帐户默认不开放远程访问权限-bin目录下my.ini文件,把“skip-grant-tables”添加进[mysqld]里面
docker参考链接:https://pdai.tech/md/devops/docker/docker-00-overview.html