从搭建到入门,快速了解Docker怎么玩
为什么有Docker
- 将一整套环境打包封装成镜像,无需重复配置环境,解决环境带来的种种问题。
- Docker容器间是进程隔离的,谁也不会影响谁。
- 相较于传统的VM虚拟化方法,Docker的好处是启动速度快,资源利用率高,性能开销小。
- 镜像(Image) :Docker 镜像(Image),就相当于是一个ISO文件系统。比如Centos官方镜像 CentOS-7-x86_64-DVD-2009.iso就包含一个完整的 centos 操作系统环境。
- 容器(Container) :镜像(Image)和容器(Container)的关系,就像是java面向对象程序设计中的类和实例一样,镜像是类的定义,容器是镜像运行时的实例。容器可以被创建、启动、停止、删除、暂停等。
- 仓库(Repository) :仓库可看成一个代码控制中心,用来保存镜像。
- 设置Docker镜像源
yum install -y yum-utils yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装Docker社区版本
yum install docker-ce docker-ce-cli containerd.io
- 启动Docker
systemctl start docker
- 惯例helloworld: docker run hello-world
文章图片
Dokcer常用命令
- 镜像命令
docker images //列出本地主机上的所有镜像
docker search 【镜像名】//搜索镜像
docker pull 【镜像名】//拉取镜像
docker rmi -f【镜像名】//删除单个镜像
docker rmi -f【镜像名1 镜像名2】//删除多个镜像
docker rmi -f $(docker image -q) //删除全部镜像
- 容器命令
docker run -it【镜像名】//以交互模式启动容器
docker run -d【镜像名】//以后台模式启动容器
docker run -d -P 随机端口映射,容器内部端口随机映射到主机的端口
docker run -d -p 指定端口映射,格式为主机端口:容器端口
docker ps //列出当前正在运行的容器
exit //容器停止且退出
ctrl+p+q //容器不停止退出
docker start【容器id/容器名】//(退出容器后)启动容器
docker restart【容器id/容器名】//重启容器
docker stop【容器id/容器名】//停止容器
docker kill【容器id/容器名】//强制停止容器
docker rm 【容器id】//删除容器
docker rm -f $(docker ps -a -q)/ /删除全部容器
docker ps -a -q | xargs docker rm //删除全部容器
docker attach【容器id】//以交互模式进入正在运行的容器
docker exec -it【容器id】【bashshell】//可直接运行命令得到结果跳过进入容器的步骤
docker commit【容器id】【镜像名:版本号】//从容器创建一个新的镜像
更多的命令:# Docker命令大全
Dokcer容器数据卷
容器数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享。
- 使用命令添加容器数据卷
docker run -d -v 宿主机文件绝对路径:容器文件绝对路径【镜像名】
- 使用DockerFile添加容器数据卷
通过DockerFile创建的带有VOLUME的镜像,然后创建容器会自动将VOLUME的目录挂载到宿主机默认目录
VOLUME["dataVol1","dataVol2"]
- 【从搭建到入门,快速了解Docker怎么玩】从另一个容器当中挂载容器中已经创建好的数据卷
docker run -d --volumes from【容器名】【镜像名】
DokcerFile
DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本
docker build -f【dockerFile路径】-t【镜像名】:版本号 .
相关指令:# Docker Dockerfile
- 拉镜像
docker pull redis:3.2
2.新建本地redis.conf,目的是启动时可以自定义这个配置文件的内容映射到docker中redis的配置文件
mkdir -p /opt/redis/conf cd /opt/redis/conf touch redis.conf
设置密码
文章图片
- 启动容器
docker run -p 6379:6379 -v /opt/redis/data:/data -v /opt/redis/conf/redis.conf:/etc/redis/redis.conf -d redis:3.2 redis-server /etc/redis/redis.conf --appendonly yes
- 连接redis
文章图片
推荐阅读
- 2018-02-06第三天|2018-02-06第三天 不能再了,反思到位就差改变
- 一个小故事,我的思考。
- Docker应用:容器间通信与Mariadb数据库主从复制
- 第三节|第三节 快乐和幸福(12)
- 你到家了吗
- 一个人的碎碎念
- 遇到一哭二闹三打滚的孩子,怎么办┃山伯教育
- 死结。
- 我从来不做坏事
- 赢在人生六项精进二阶Day3复盘