前沿:
这是一个0基础,需要快速掌握docker的手记。请按照下边的顺序一步步来,基本的使用完全木有问题, 本期不设计dockerfile 就是简单的快速使用
第一步:
了解docker是什么: 简单来说 docker就是一个虚拟化的容器服务,他比wmware那样的虚拟机轻便很多,启动速度更快
第二步:
了解docker的组成部分:
1: image: 镜像, 你可以把他想像成过去的光盘。 光盘里有你的所有程序,当然这个程序是依托于一个系统的,所以一个镜像一般来说包含了一个系统的核心功能 + (你的程序)
2:container: 容器, 你可以把它想象成dvd机器, 把光盘放进去才能读取出光盘里的信息,所以真正执行的应该是container
第三步:
了解拉取镜像的地址: https://hub.docker.com/ 是docker的官方容器网站,你只需自己注册,不过 由于是国外的网站,需要科学上网, 当然,你也可以使用阿里云等我们国内的一些容器仓库地址,这些可以查看这些云平台。这些平台上有很多的镜像, 比如说, ubuntu, redis, mongodb, nginx 等等, 我们可以直接把他拉取下来,拉下来的是镜像, 我们需要让他启动成container 才可以跑起来。
第四步:
下载和安装docker: 我们可以去https://www.docker.com/get-started 官方下载并安装,或者直接百度或google docker 安装,会有很多符合你系统的安装方式,这里不过分讲解如何安装, windows和mac都可以直接傻瓜式安装, linux 可以通过 各自的安装工具进行安装,比如 ubuntu的 apt, centos的yarn, 不过建议通过源码安装,因为他们的工具库里未必是最新版本
现在你已经了解了docker是什么,docker的组成,已经下载并安装了docker,接下来,我们通过命令来告诉大家如何使用docker:
第五步:
查找镜像: docker search image 这里查找的是远端仓库里
拉取镜像: docker pull image_name
第六步:
查看镜像: docker images 这里是查看本地的镜像
删除镜像: docker rmi image_id 这里是删除本地镜像
第七步:
将镜像以容器的形式启动: docker run -it 镜像名 前台挂起启动
docker run -d 镜像名 后台启动
这里在介绍一些 常用的命令:
-i 交互式操作
-t 终端
-d 后台启动
-v 挂载 左边是宿主机路径:右边是容器目录 大概意思就是将宿主机的一个地址和容器中的一个地址关联起来, 两个区域可以共享这个文件夹的数据,保证了容器的数据持久化 如: -v /var/data:/tmp/
-p 端口映射 左边是对外访问的端口号:右边是容器内启动的端口号 如: -p 5000:3306
-name 给容器起个名字
我们以mysql为例做写一个完整的mysql启动:
docker run -p 12345:3306 --name mysql5.6
-v /dewei/mysql/conf:/etc/mysql/conf.d 将主机目录下 conf/my.cnf 挂在到容器/etc/mysql/conf.d
-v /dewei/mysql/logs:/logs 将主机目录下 logs目录挂在到容器的/logs
-v /dewei/mysql/data:/var/lib/mysql 将主机目录下的data目录挂在到容器的/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456 初始化root用户密码
-d mysql:5.6 后台程序运行mysql5.6
第八步:
启动之后,可以查看容器的状态: docker ps
关闭一个正在执行的容器 : docker stop container_id (这里是容器的id, 容器启动后会有id,ps可以看到)
容器一个正在执行的容器:docker restart container_id
杀死一个正在执行的容器:docker kill container_id
启动一个已经停止的容器:docker start container_id
进入容器内部: docker attach container_id
查看未在执行的容器: docker ps -a
删除一个容器: docker rm container_id
结束语:
掌握以上命令和步骤, docker的基本使用就没问题了, 本文章先到这里, 如果觉得有用,我再写关于dockerfile和提交镜像的手记
··································
欢迎关注课程:
《Django入门到进阶-更适合Python小白的系统课程》
金职位 Python工程师2020版