docker学习之路
环境 :
ubuntu 16.4
下载docker
首先使用命令行下载 docker
wget -qO- https://get.docker.com/ | sh
启动
下载完成之后进行一个启动,但是会出现错误 提示用户没有权限
ubuntu默认是非root用户,非root用户会提示错误信息所以最简单的办法是使用
sudo su
进入root用户模式执行以下命令
开启docker start
sudo service docker start
重启docker服务
service docker restart
关闭docker服务
versice docker stop
更换镜像源
访问国外镜像源太慢了 只能使用国内源
Docker 官方中国区:https://registry.docker-cn.com
网易:http://hub-mirror.c.163.com
中国科技大学:https://docker.mirrors.ustc.edu.cn
阿里云:https://y0qd3iq.mirror.aliyuncs.com
进入宿主机的文件目录 /etc/docker/daemon.json 这是docker在宿主机上的镜像源配置,
一般情况是没有的 daemon.json 配置文件的,
vim daemon.json 创建一个同名文件 在其中写入
{
"registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"]
}
根据情况选择 上述四个源的url地址 我这里是阿里云
退出保存 :wq 重启docker服务
service docker restart
使用 如下命令查看是否生效
docker info|grep Mirrors -A
如果显示出如下信息这说明成功
WARNING: No swap limit support
Registry Mirrors:
https://y0qd3iq.mirror.aliyuncs.com/
寻找docke镜像 并下载
docker 官方地址源 https://hub.docker.com/
(比方 例子)比如我需要下载java的依赖 去 docker 仓库寻找java的包 (实验性质 也可以使用其他搜索情况)
docker search java

都是java搜索找到的,但是貌似是图中java停止更新了??? 所以下载openjdk
docker pull openjdk
等待下载

下载完成 查询下载来的镜像
docker images

能看到openjdk 已经下载了
REPOSITORY 是镜像的名字
TAG 版本号 默认下载是latest 最新的
IMAGE_ID 镜像id
CERATED 时间 不要在意...
SIZE 大小
启动docker 容器
当前没有可以使用的镜像 ,所以使用菜鸟教程中的镜像源 拉去源
docker pull training/webapp

docker run 启动
docker run -it -p : training/webapp python app.py // 上述表示
// 使用docker run启动
// -it 启动之后进入命令行输出模式
// -p 33333:5000 将宿主机的33333端口和docker容器的端口5000(5000是菜鸟教程中flask程序,flask的默认端口是5000) 在外部对该程序进行访问时使用设置的宿主机端口
// training/webapp 镜像
// python app.py 执行flask的程序

在另一台机器中访问宿主机ip加docker -p 33333:5000 设置的3333接口 得到该flask程序输出结果
可以看到 是输出模式 并且持续输出flask程序的响应
但是注意 一旦退出就会停止 exit 这个容器,不会在次运行,外部也不能通过 ip:port 访问
docker ps // 可以查看运行中的docker容器

docker ps -a // 查看docker 所有的容器 不管停止的还是运行的 能看到上面运行的

那么需要使用后台模式挂起 退出并不会stop docker中的容器 -d 后台挂起模式
docker run -d -p : training/webapp python app.py

可以通过刚刚使用上述命令产生的容器id 也就是 d9b55..... 进行一些操作
// 比如 查看该容器产生的标准输出
docker logs d9b55
// 容器id是docker随机产生的 不需要全部写出 写出前面几位不和其他容器id重复就好了
这是访问一次之后的结果
如果需要进行一个持续显示输出
docker logs -f d9b

查看后台挂起容器状态
docker ps

可以多开几个容器 都是同一个镜像 只是宿主机端口不同,访问不同的端口 但都是同一个后台程序

如果每个容器中的镜像程序都是链接同一个数据库,那么可以后续使用nginx 之类的软件负载均衡 不断轮询
将没有挂起后台的容器重新启动
docker ps -a
// 能看到所有运行的和没运行的容器 根据容器id 选择启动 docker start 容器id
停止容器
docker stop 容器id
停止全部容器
docker stop $(docker ps -aq)
// docker ps -aq 显示所有容器id
删除容器

需要先停止容器
// 停止运行容器
docker stop 容器id // 删除
docker rm 容器id
删除全部容器
// 默认为容器停止了
docker rm $(docker ps -aq) // 找到所有容器暂停在删除
docker rm $(docker stop $(docker ps -aq))
删除镜像
docker rmi 镜像名称或者id

同样和容器一样 如果运行中的容器是依赖于这个镜像的,那么删除也会出现错误,需要先停止依赖这个镜像的容器
docker学习之路的更多相关文章
- docker学习之路-centos下安装docker
前言 我要在云服务器上做一个asp.net core的webapi应用,使用docker来部署应用,中间用到的任何组件包括nginx和sqlserver 2017都是用docker来装载运行,所以,这 ...
- Docker学习之路(三)Docker网络详解
1. Docker的4种网络模式 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host ...
- Docker学习之路(二)DockerFile详解
Dockerfile是一个镜像的表示,可以通过Dockerfile来描述构建镜像的步骤,并自动构建一个容器 所有的 Dockerfile 命令格式都是: INSTRUCTION arguments 虽 ...
- Docker学习之路(一)
容器简介 管理程序虚拟化(hypervisor virtualization, HV)是通过中间虚拟运行于物理硬件之上.而容器是直接运行在操作系统内核之上用户空间.因此,容器虚拟化运行也成为“操作系统 ...
- docker学习之路-build asp.net core 2.2产生 warning MSB3245: Could not resolve this reference.错误的解决办法
在docker build的时候有时我们可以直接使用dotnet publish来发布,但是如果用docker构建镜像的时候却会出现下面的错误: 解决办法:https://stackoverflow. ...
- docker学习之路-nginx镜像(翻译)
本篇来自https://hub.docker.com/_/nginx/?tab=description 它是docker hub上nginx的官方网站,上面有关于nginx的使用描述等.从这里你可以找 ...
- docker 学习之路 将docker容器变为镜像并上传
环境 ubunt 16.4 去hub.docker.com上注册一个账号,并在账号中注册一个公有public或者私有仓库private 步骤如下 如上图 点击该处进入创建docker库页面 除了名字之 ...
- docker学习之路(安装、使用)
一.docker安装 1.更新现有的yum包 yum update 2.配置docker yum源 [root@docker ~]# cat /etc/yum.repos.d/docker.repo ...
- Docker学习总结(18)——阿里超大规模Docker化之路
12月6-7日,由阿里巴巴集团.阿里巴巴技术发展部.阿里云云栖社区联合主办,以"2016双11技术创新"为主题的阿里巴巴技术论坛上,阿里巴巴研究员林昊分享了阿里超大规模Docker ...
随机推荐
- asp.net---jquery--ajax 实现滚动条滚动到底部分页显示
前台:aspx页面 var bgtime = $(" #date1 ").val(); var overtime = $(" #date2 ").val(); ...
- python、anaconda、jupyter notebook、pycharm、spyder
说明: 1.anaconda把任何东西都当做包来管理. 2.anaconda本省集成了python和conda.spyder.numpy等. 3.pip只用于python,conda可用于多种语言. ...
- iOS高仿微信悬浮窗、忍者小猪游戏、音乐播放器、支付宝、今日头条布局滚动效果等源码
iOS精选源码 iOS WKWebView的使用源码 模仿apple music 小播放器的交互实现 高仿微信的悬浮小窗口 iOS仿支付宝首页效果 [swift]仿微信悬浮窗 类似于今日头条,网易新闻 ...
- 防止跨站攻击——CSRFToken
怎么防止跨站攻击: 表单:在 Form 表单中添加一个隐藏的的字段,值是 csrf_token. 非表单:在ajax获取数据时,添加headers:{ 'X-CSRFToken':getCookie( ...
- [LC] 236. Lowest Common Ancestor of a Binary Tree
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According ...
- LINQ之路 7:子查询、创建策略和数据转换(要点笔记)
匿名类型 上面我们自己定义了类型TempProjectionItem来存放查询的结果.通过使用匿名类型,我们可以省去这种中间类型的定义,而由编译器来帮我们完成: select item.Origina ...
- jq ajaxPrefilter 防止重复提交ajax
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- http://yuedu.baidu.com/ebook/36edd3d7ba1aa8114531d911
本书概述: 全面深入自动化测试技术,包括接口自动化测试.app自动化测试.性能自动化测试技术:实践,理论结合,方案,环境,代码 java语言,python语言,自动化测试开发 ...
- 12月18日风险投资速递:Facebook收购实时体育数据提供商Sport Stream
国内公司 1.手游公司成都掌沃无限获得近千万元天使投资 成都掌沃无限成立于2013年,是一家新成立的手机游戏开发商,创始人及CEO张涛拥有超过10年的游戏行业从业经验和连续创业经历,其首款游戏产品为& ...
- 查漏补缺:进程间通信(IPC):FIFO
1.FIFO FIFO,又称命名管道.不同于pipe管道的只能用于拥有共同祖先进程的两个进程间通信,因FIFO通过路径绑定,所以即使是不相关的进程间也可通过FIFO进行数据交换. FIFO是一种文件类 ...