1、学习一个新的知识,我们无非是从这几个点进行学习,什么是docker?docker能干什么?这也是一个学习的方法,所有的知识都是融会贯通的。
那么docker到底是什么呢?
官方的解释是这样的!!
Docker 是一个用于开发、传送和运行应用程序的开放平台。 Docker 使您能够将应用程序与基础设施分开,以便您可以快速交付软件。 使用 Docker,您可以像管理应用程序一样管理基础设施。 通过利用 Docker 的快速交付、测试和部署代码的方法,您可以显着减少编写代码和在生产中运行代码之间的延迟。
之前我们都是在windows中装一个VM虚拟机,通过这个虚拟机我们可以虚拟出来一台电脑,而docker是容器技术,他的思想就是隔离机制,只需要一个个镜像就完全可以解决,大大减化了部署项目的繁琐步骤,没有docker之前,我们发布一个项目需要安装jdk、mysql、tomcat等软件,现在不需要,只要打一个镜像,直接运行即可,是不是简单了许多。
docker官方文档安装步骤
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
$ sudo yum install docker-ce docker-ce-clid.io
yum list docker-ce --showduplicates | sort -r
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING>d.io
$ sudo systemctl start docker
$ sudo docker run hello-world
使用命令docker images 查看hello-world镜像存在说明docker安装成功。
使用命令docker run hello-world 启动这个镜像,到此docker的启动已经完成啦。
sudo yum remove docker-ce docker-ce-clid.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
用到的画图软件是processon
使用Docker安装nigix
docker run -d --name nginx01 -p 3344:80 nginx
- -d 以后台的方式启动
- –name 给容器命名
- -p 外部端口:内部端口
# 获取镜像
[root@iZ2zeg4ytp0whqtmxbsqiiZ home]# docker pull mysql:5.7
# 运行容器, 需要做数据挂载! # 安装启动mysql,需要配置密码(注意)
# 官方测试, docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
# 启动我们的
-d # 后台运行
-p # 端口隐射
-v # 卷挂载
-e # 环境配置
--name # 容器的名字
[root@iZ2zeg4ytp0whqtmxbsqiiZ home]# docker run -d -p 3344:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
9552bf4eb2b69a2ccd344b5ba5965da4d97b19f2e1a78626ac1f2f8d276fc2ba
# 启动成功之后,我们在本地使用navicat链接测试一下
# navicat链接到服务器的3344 --- 3344 和 容器的3306映射,这个时候我们就可以连接上mysql喽!
在本地测试创建一个数据库,查看下我们的路径是否ok!
docker ps 查看容器的ID
docker inspect 容器ID
向下查看Mounts中挂载的数据卷的类型(具名挂载)、名字、
源路径(宿主机的路径)、目的路径、mode(ro:只读,rw:只写)