当前位置: 首页 > news >正文

Docker快速上手指南

1 获取镜像

docker pull nginx
docker pull nginx:latest

2 查看本地镜像

docker images

3 运行镜像

docker run -d -p 80:80 nginx

-d 后台运行
-p 内外端口映射

4 查看正在运行的容器

docker ps

5 修改容器

docker exec -it xxxx bash

-it 接容器id

6 删除容器

docker rm -f xxx

7 提交容器

docker commit xxx name(自己定一个名字)

8 通过dockerfile构建镜像跑成容器

新建dockerfile文件(写法自行查阅官方文档)

然后在当前目录新建index.html

9 保存文件和重新加载



摘一个网友(湿漉漉的小狐狸)的笔记

安装和常用CLI:
添加阿里云镜像:sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装命令:sudo yum install -y  docker-ce docker-ce-cli containerd.io
启动命令:sudo systemctl start docker
添加当前用户到docker用户组:sudo usermod -aG docker $USER (需注销),newgrp docker (立即生效)
Helloworld:docker run hello-world  (本地没有镜像的话会自动从远端仓库pull)
pull nginx 镜像:docker pull nginx(等效于nginx:latest)
运行:docker run -【d】(后台运行不阻塞shell) 【-p 80:80】(指定容器端口映射,内部:外部) nginx
查看正在运行:docker ps
删除容器:docker rm -f <container id(不用打全,前缀区分)>
进入bash:docker exec -it <container id(不用打全,前缀区分)> bash
commit镜像:docker commit <container id(不用打全,前缀区分)>  <name>
查看镜像列表:docker images (刚才commit的镜像)
使用运行刚才commit的镜像:docker run -d <name>
使用Dockerfile构建镜像:docker build -t <name> <存放Dockerfile的文件夹>
删除镜像:docker rmi <name>
保存为tar:docker save <name> > <tar name>
从tar加载:docker load < <tar name>

一些启动参数:
后台运行容器:-d
容器内外端口映射:-p 内部端口号:外部端口号
目录映射:-v 'dir name' : <dir>
指定映像版本:<name>:<ver>

多容器项目的组织

docker run -d -p 80:80 --name mynginx nginx
docker ps
docker exec -it mynginx bash
cat /etc/hosts


172.17.0.2是容器的ip
然后我们退出(exit)然后又启动一个新的容器

docker run -dit alpine
docker exec -it xxxx(容器id)

apk add curl
curl 172.17.0.2



–link 参数 把另一个容器映射到本容器里面(通过修改/etc/hosts文件)

三个容器的组织

注意:创建顺序需要先mysql,然后启动php的时候link参数映射到mysql,同理类推~
这样对运维来说太麻烦了,有什么好方法吗?docker-compose

docker-compose 用法

(本小节实验涉及的文件参考:https://github.com/bobo132/docker-compose-demo-1)

新建俩文件夹
+
|____ conf
|____ html


然后在conf/下面建立nginx.conf

(略)
然后写docker-compose.yml

(不能指定官方的php,因为缺少扩展,搜索php-fpm然后选一个~

然后退出vim~
在该目录下运行docker-compose up -d (-d 后台启动)



学习资源

课程

  1. 【docker入门】10分钟,快速学会docker
  2. 【docker入门2】实战~如何组织一个多容器项目docker-compose
  3. 【Docker】Dockerfile用法全解析
  4. 【kubernetes入门】快速了解和上手容器编排工具k8s

实验
4. https://labs.play-with-docker.com/
不需要本地安装,在web端做实验~

相关文章:

  • vc6代码转到VS8以后的CString::m_pchData undefined 的解决办法
  • ERROR in Template execution failed: ReferenceError: process is not defined
  • Failed to mount component: template or render function not defined.
  • electron-builder依赖包下载失败(winCodeSign)
  • Windows中Neo4j搭建及安装
  • dos下筛选字符串的命令/windows下grep替代命令
  • Django框架
  • pip查看包的安装路径
  • ImportError: No module named django.core.management
  • python3项目打包成exe可执行程序
  • Nodejs 中文字符gb2312乱码问题
  • 胖客户端与瘦客户端概念与区别
  • 云计算导论 # 1 云计算概述:起源、概念、发展现状、商业模式、架构与应用
  • 云计算导论 # 2 云服务:概述、体系简介、类型及应用与部署模型
  • 云计算导论 # 3 云存储技术:概念、结构模型、关键技术、分布式数据存储、常见存储结构、应用与问题
  • (三)从jvm层面了解线程的启动和停止
  • @jsonView过滤属性
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript设计模式与开发实践系列之策略模式
  • JAVA并发编程--1.基础概念
  • JS实现简单的MVC模式开发小游戏
  • js中forEach回调同异步问题
  • JS专题之继承
  • React的组件模式
  • 创建一个Struts2项目maven 方式
  • 分享几个不错的工具
  • 基于 Babel 的 npm 包最小化设置
  • 深度学习在携程攻略社区的应用
  • 项目实战-Api的解决方案
  • 一道面试题引发的“血案”
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 国内开源镜像站点
  • 说说我为什么看好Spring Cloud Alibaba
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (03)光刻——半导体电路的绘制
  • (06)金属布线——为半导体注入生命的连接
  • (145)光线追踪距离场柔和阴影
  • (poj1.2.1)1970(筛选法模拟)
  • (二十三)Flask之高频面试点
  • (分布式缓存)Redis分片集群
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (三)uboot源码分析
  • (十六)串口UART
  • (一)kafka实战——kafka源码编译启动
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET中的十进制浮点类型,徐汇区网站设计
  • :O)修改linux硬件时间
  • @Transactional 详解
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [ SNOI 2013 ] Quare