博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker 的简单使用
阅读量:6914 次
发布时间:2019-06-27

本文共 5999 字,大约阅读时间需要 19 分钟。

 

运行一个ubuntu容器 

咱们要在cenots7操作系统下,以docker下载一个ubuntu image文件,然后以image启动容器

docker pull ubuntu或者指定版本:docker pull ubuntu:14.04

 

运行这个乌班图容器!

docker run  ubuntu也可以指定参数启动 docker run - rm ubuntu

 

dicker 启动的参数

docker run就是运行容器的命令。参数 -it : -i 是交互式操作,-t是终端 --rm  :   容器退出后将其删除。也可以不指定参数,手动docker rm,使用-rm可以避免浪费空间。 ubuntu:14.04   这指的是镜像文件 bash   :  指定用交互式的shell,因此需要bash命令eg:    docker run --rm ubuntu  # 启动后删除 不留痕迹 docker  ps -a 也看不到   docker run -it --rm ubuntu  # 启动是的交互命令结束不留痕迹

 

用 --rm 参数启动的和无参数的是不一样的

 

 

 

执行了docker run -it --rm unbuntu 之后交互界面的信息都不一样了

在这个里面查看系统都显示是ubuntu的了   cat /etc/os-release

 

 

 docker  运行centos

下载centos后 然后用-it进行centos容器内的交互界面

 

 

 

-d后台运行

docker run -d centos  /bin/bash -c  '你要执行的shell脚本'docker run -d centos  /bin/bash -c 'while true;do echo hello docker66666;sleep 1;done'

然后就会返回给我们一段执行后的启动后的id

 

然后我们想要查看这个进程运行的信息

docker exec -it  要查看的进程id  /bin/bash  docker exec -it  78b  /bin/bash

 

 

查看容器内的输出

然后我们退出centos内的进程 到外面查看docker 的日志 因为刚才是在centos容器内  我们的docker 是安装在服务器内的 所以要到服务器的大环境内 而不是某一个docker容器内

 

docker  logs  +要查看的进程id也可以在后面 加上-f 参数 可以一直查看  和tail -f 一样

 

 查看docker  的进程

docker ps

 

停止docker  进程

如果我们有docker进程这个时候不想让他跑了就用stop

docker  stop +要停止的docker进程

重现再跑起来 要么执行最开始跑的命令 要么就执行start

docker start  +要启动的进程

 

先查看以前跑过的进程再start

 

 

 

docker 自定义镜像  commit(构建自定义的镜像)

我们在启动 的docker进程有个id  我们可以根据这个id来打包

 

 

docker  commit + 要打包的进程id  +新起的包名

 

 

 

 

 

外部访问容器

容器中可以运行网络应用,但是要让外部也可以访问这些应用,可以通过-p或-P参数指定端口映射

docker run -d -P trainning/webapp python app.py 参数解析:   -d  后台运行容器   -P 随机端口映射   -p 宿主机端口容器端口(就是可以指定端口小写的p指定端口容器)   

 

 

 

也可以通过-p参数指定映射端口

#指定服务器的9000端口,映射到容器内的5000端口 [root@oldboy_python ~ 16:46:13]#  docker run -d -p 9000:5000 training/webapp python app.pyc0b5a6278d0f4f2e9b9eba8680451111d8b911b61de0c37ea64cb337aefb854e

 

docker运行一个flask web应用,暴露端口供给windows使用

1、首先我们要先下载系统镜像 centos, 然后启动这个镜像生成容器

2、然后进入这个镜像内安装python2的软件管理工具 easy_install

3、安装flask

4、编写好flask脚本

5、退出容器产生容器id记录

6.提交此容器记录,构建镜像

7.查看镜像

8.运行flask_web镜像,暴露端口访问

9.此时在windows浏览器访问 7000端口的 flask应用

 

 

1.docker run -it centos    2. 安装 easy_install  命令,python2软件包管理        yum install  python-setuptools     3.安装flask         easy_install flask    4.编写好flask  web脚本     cd /home  # 脚本写在home下     然后yum install vim -y 安装vim  编辑器     touch  flask_web.py  # 建立一个脚本文件编辑脚本         from flask import Flask app = Flask(__name__)

          @app.route('/')

          def index():
                return 'Hello This is docker'

#此脚本当做模块导入时候,__main__里代码不执行        #当做脚本文件直接运行的时候,执行__main__代码        if __name__ == '__main__':           app.run(host='0.0.0.0',port=9000)               5.退出容器,产生容器id记录        exit     6.提交此容器记录,构建镜像(找到你的容器内的id你进入的时候会有显示的)        docker commit 976  s12/flask_web    7.查看镜像 docker images 8.运行flask_web镜像,暴露端口访问 启动的时候要指定python解释器  docker run -d -p 7000:9000 s12/flask-web python /home/flask-web.py 9.此时在windows浏览器访问 7000端口的 flask应用

 

然互docker ps查看是否启动了 

 

 在启动的时候你要指定你的镜像 然后指定python解释器去启动这个镜像中的具体的文件 caicai/flask-web 是你的打包的镜像然后指定python去启动中的具体的python文件

 

接着访问指定的7000端口就能看到内容了

 

 

 

docker hub

 docker hub 顾名思义就是一个类似于我们常用的github存储代码一样这个是存储我们的  生成的容器的

 

首先我们打包的镜像 直接推送是不可以的  需要先起个tag名字才能进行推送的

 打包:

docker  tag 镜像名字   你的dockerhub名字/起的tag名字

docker tag caicai/flask-web zyltry/caicai  # 给我的caicai/flask-web镜像在zyltry的dockerhub下起个caicai的tag

 

 

 然后直接docker images  然后把你起的tag生成的镜像名字推上去

直接docker  push + 镜像名字

 

 然后 就可以在你的 docker  hub上看到你提交的信息了

复制代码

发布docker image到仓库

第一种,docker hub公有镜像发布

复制代码
1.docker提供了一个类似于github的仓库dockerhub,网址https://hub.docker.com/需要注册使用2.注册docker id后,在linux中登录dockerhubdocker login 注意要保证image的tag是账户名,如果镜像名字不对,需要改一下tag docker tag chaoyu/centos-vim zyltry163/centos-vim 语法是:  docker tag   镜像名   docker hub名字/仓库名 3.推送docker image到dockerhubdocker push 镜像名字:latest4.在dockerhub中检查镜像https://hub.docker.com/5.删除本地镜像,测试下载pull 镜像文件docker pull 镜像名

 

私有仓库:

 

但是这种镜像仓库是公开的,其他人也是可以下载,并不安全,因此还可以使用docker registry官方提供的私有仓库

 首先你要对你的要私有化的镜像 进行tag的添加 不添加是无法进行上传的

 

1.官方提供的私有仓库docker registry用法https://yeasy.gitbooks.io/docker_practice/repository/registry.html2.一条命令下载registry镜像并且启动私有仓库容器私有仓库会被创建在容器的/var/lib/registry下,因此通过-v参数将镜像文件存储到本地的/opt/data/registry下端口映射容器中的5000端口到宿主机的5000端口docker run -d \    -p 5000:5000 \    -v /opt/data/registry:/var/lib/registry \    registry
检查启动的registry容器docker ps4.测试连接容器telnet 192.168.119.10 5000
5.修改镜像tag,以docker registry的地址端口开头docker tag hello-world:latest 192.168.119.10:5000/hello-world:latest
6.查看docker镜像,找到registry的镜像docker images7.Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,这里必须写正确json数据[root@master /]# cat /etc/docker/daemon.json{"registry-mirrors": ["http://95822026.m.daocloud.io"],"insecure-registries":["192.168.119.10:5000"]} 写入到docker服务中,写入到[Service]配置块中,加载此配置文件[root@master home]# grep 'EnvironmentFile=/etc/docker/daemon.json' /lib/systemd/system/docker.service如果没有就对下面的进行添加信息  编辑docker 配置让他加载你的配置信息 :vim /lib/systemd/system/docker.service            添加:EnvironmentFile=/etc/docker/daemon.json8.修改了docker配置文件,重新加载dockersystemctl daemon-reload
 
9.重启dockersystemctl restart docker10.重启了docker,刚才的registry容器进程挂掉了,因此重新启动它docker ps -adocker start 容器id11.推送本地镜像docker push 192.168.119.10:5000/hello-world
12.由于docker registry没有web节目,但是提供了API数据官网教程:https://docs.docker.com/registry/spec/api/#listing-repositoriescurl http://192.168.119.10:5000/v2/_catalog 或者浏览器访问http://192.168.119.10:5000/v2/_catalog 13.删除本地镜像,从私有仓库中下载 docker pull 192.168.119.10:5000/hello-world
 

 

 

 首先 先对你的 要私有的镜像进行tag起名

 

docker   +选择的镜像名   tag 你的ip和规定的端口号/起的标签名

 

 

 

 

然后你还需要修改一个配置因为 Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,这里必须写正确json数据

vim /etc/docker/daemon.json

 

 

然后

grep 'EnvironmentFile=/etc/docker/daemon.json' /lib/systemd/system/docker.service

 

如果没反应就代表没有

然后编辑 /lib/systemd/system/docker.service

vim /lib/systemd/system/docker.service 把信息:加入到service中  让你的docker加载这个文件
EnvironmentFile=/etc/docker/daemon.json

然后重新加载 重启你的docker

 

[root@VM_0_9_centos ~]# systemctl daemon-reload[root@VM_0_9_centos ~]# systemctl restart docker

 

 

 

然后找到你的刚起启动的rgister进程启动因为重新加载挂了

docker  ps -a

 

 

重启register容器

docker  start +容器id

 

 

然后你用浏览器访问

或者浏览器访问http://ip地址:5000/v2/_catalog

 

 

下面docker  push  你刚才建立的私有仓库的tag

 

 再访问你的界面就有了

 

也可以从你的私有仓库下载镜像了

 
从私有仓库中下载 docker pull +私有的镜像
从私有仓库中下载docker pull 192.168.119.10:5000/hello-world

 

转载于:https://www.cnblogs.com/zhaoyunlong/p/10325868.html

你可能感兴趣的文章
站在巨人肩膀上看源码-LinkedList
查看>>
Jquery 以及AngularJS 中 Get/Post 传参笔记
查看>>
Android入门篇(二)布局文件 容器②
查看>>
如何在Kubernetes中管理有状态应用
查看>>
一个基于react的图片裁剪组件
查看>>
PWA介绍及快速上手搭建一个PWA应用
查看>>
js数组用法
查看>>
Dubbo学习笔记
查看>>
基于 Redis驱动的 Laravel 事件广播
查看>>
NPM酷库040:jschardet,识别数据编码
查看>>
图书管理系统【用户、购买、订单模块、添加权限】
查看>>
JavaScript30秒, 从入门到放弃之Array(六)
查看>>
RabbitMQ的安装和使用
查看>>
WebAssembly起步
查看>>
基于CentOS搭建Hexo博客--设置NexT主题及个性化定制
查看>>
百度移动端首页秒开学习
查看>>
【304天】每日项目总结系列042(2017.12.06)
查看>>
数人云|给还在犹豫选择的你,微服务架构与整体架构的各自优势
查看>>
ES6之数值的扩展
查看>>
算法之路(1) -- two sum
查看>>