环境 :

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

菜鸟教程相关url


停止容器

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学习之路的更多相关文章

  1. docker学习之路-centos下安装docker

    前言 我要在云服务器上做一个asp.net core的webapi应用,使用docker来部署应用,中间用到的任何组件包括nginx和sqlserver 2017都是用docker来装载运行,所以,这 ...

  2. Docker学习之路(三)Docker网络详解

    1. Docker的4种网络模式 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host ...

  3. Docker学习之路(二)DockerFile详解

    Dockerfile是一个镜像的表示,可以通过Dockerfile来描述构建镜像的步骤,并自动构建一个容器 所有的 Dockerfile 命令格式都是: INSTRUCTION arguments 虽 ...

  4. Docker学习之路(一)

    容器简介 管理程序虚拟化(hypervisor virtualization, HV)是通过中间虚拟运行于物理硬件之上.而容器是直接运行在操作系统内核之上用户空间.因此,容器虚拟化运行也成为“操作系统 ...

  5. docker学习之路-build asp.net core 2.2产生 warning MSB3245: Could not resolve this reference.错误的解决办法

    在docker build的时候有时我们可以直接使用dotnet publish来发布,但是如果用docker构建镜像的时候却会出现下面的错误: 解决办法:https://stackoverflow. ...

  6. docker学习之路-nginx镜像(翻译)

    本篇来自https://hub.docker.com/_/nginx/?tab=description 它是docker hub上nginx的官方网站,上面有关于nginx的使用描述等.从这里你可以找 ...

  7. docker 学习之路 将docker容器变为镜像并上传

    环境 ubunt 16.4 去hub.docker.com上注册一个账号,并在账号中注册一个公有public或者私有仓库private 步骤如下 如上图 点击该处进入创建docker库页面 除了名字之 ...

  8. docker学习之路(安装、使用)

    一.docker安装 1.更新现有的yum包 yum update 2.配置docker yum源 [root@docker ~]# cat /etc/yum.repos.d/docker.repo ...

  9. Docker学习总结(18)——阿里超大规模Docker化之路

    12月6-7日,由阿里巴巴集团.阿里巴巴技术发展部.阿里云云栖社区联合主办,以"2016双11技术创新"为主题的阿里巴巴技术论坛上,阿里巴巴研究员林昊分享了阿里超大规模Docker ...

随机推荐

  1. pycharm里配置了项目虚拟环境,terminal打开并不是在虚拟环境下,如何解决

    在pycharm里,点开下方的Terminal,此时默认目录为当前项目对应的根目录, 第一步:输入  cd   venv\Scripts  进入Scripts目录 第二步:然后运行activate.b ...

  2. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-openpyxl读取excel(14)

    从excel中读取数据 # -*- coding: utf-8 -*- # @Time : 2020/2/12 17:23 # @File : do_excel_openpyxl_14.py # @A ...

  3. webStrom 运行React-Native项目

    1.点击“Edit Configurations...” 2.点击“+”选择“npm” 3.“Name”随便输入一个名称,“Command”改为“help”,然后在点击“+”号. 4.选择“Run E ...

  4. Java IO: Reader And Writer

    原文链接 作者: Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com) Java IO的Reader和Writer除了基于字符之外,其他方面都与InputStre ...

  5. MyBatis学习笔记一:MyBatis最简单的环境搭建

    MyBatis的最简单环境的搭建,使用xml配置,用来理解后面的复杂配置做基础 1.环境目录树(导入mybatis-3.4.1.jar包即可,这里是为后面的环境最准备使用了web项目,如果只是做 my ...

  6. python多重逻辑排序

    python有自带的排序sorted函数,而且用reverse =True or False,来控制降序还是升序.但是如果有多个条件需要排序应该如何办呢? L = [(12, 12), (34, 13 ...

  7. test 5.1 高精度小数(10分)

    请写一个程序,输入一个分数,计算出它的小数形式.无论是否可以除尽,输出最多小数点后200位. 题目内容 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现 ...

  8. 通过git shell 在Github上传本地项目

    首先现在github上新建一个库,再进行如下操作,过程不赘述 1.打开git shell 2.cd到项目位置       // cd archives-vue 3.git init 4.Get add ...

  9. hexo+github搭建自己的博客

    之前很早就想用hexo弄一个自己独立的博客了,在博客园也写了很多的博客,不过不喜欢博客园的风格.不过今天,终于折腾成功了,用hexo搭建了一个在github写的博客,开心,后面会将自己以前的博客慢慢迁 ...

  10. 给你的Kubernetes集群建一个只读账户(防止高管。。。后)

    给你的Kubernetes集群建一个只读账户 需求:我们知道搭完k8s集群会创建一个默认的管理员kubernetes-admin用户该用户拥有所以权限,有一天开发或测试的同学需要登录到k8s集群了解业 ...