docker 的简单使用

Posted zhaoyunlong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 的简单使用相关的知识,希望对你有一定的参考价值。

 

 

 

 

1、先卸载你的旧版本的docker(可以不卸载别较真 哈哈)

sudo yum remove docker                   docker-client                   docker-client-latest                   docker-common                   docker-latest                   docker-latest-logrotate                   docker-logrotate                   docker-selinux                   docker-engine-selinux                   docker-engine

 

 

 

 

 

 

 

 

 

 

 

 

2、下载docker加速器

 

 

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

下载完成之后就重启docker然后就可以了

 

技术分享图片

 

然后看看你的配置是否生效了

cat /etc/docker/daemon.json

 

技术分享图片

也可以手动进行和配置加速器:

cat /etc/docker/daemon.json #修改这个文件为如下内容

{
    "registry-mirrors": [
        "http://95822026.m.daocloud.io"
    ],
    "insecure-registries": []
}
---------------------------------------------------------
或者用这条命令
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://95822026.m.daocloud.io

#事后重启docker
systemctl restart docker

 

 

然后查看docker版本 和状态信息

docker   version

 

 

查看docker所有的镜像

docker images
也可以
docker image ls

 

 

 

 

我们想下载的镜像可以直接通过pull来下载 但是下载之前也可以通过search来看看要下载的信息

 

docker  search + 要查看的镜像

docker  search hello-world  # 查看hello-world镜像

 就可以看到不同的版本的镜像的点赞数目

技术分享图片

 

 我们最好以点赞数目最多的使用

 

 

 分层技术一层一层下载

技术分享图片

 

 小技巧:

你可以直接run一个镜像的前3位id 就可以跑它

技术分享图片

 

 

查看运行的docker 容器

docker  ps  查看正在运行的docker 容器


docker  ps -a   查看所有的运行过的容器

docker ps -aq 查看所有的容器id

 

 

 

删除docker镜像

docker  rmi +要删除的镜像名(镜像id)


docker  rm +要删除的容器id

镜像是你下载下来的 容器是你启动的镜像生成的

技术分享图片

 

批量删除:

docker ps -aq 是查看你的所有的正在运行的容器id
然后用反引用号 把这查到的id都加进去

docker rm `docker ps -aq`

 

 技术分享图片

 

 

运行一个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端口
[[email protected]_python ~ 16:46:13]# docker run -d -p 9000:5000 training/webapp python app.py c0b5a6278d0f4f2e9b9eba8680451111d8b911b61de0c37ea64cb337aefb854e

 

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查看是否启动了 

 

接着访问指定的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中登录dockerhub
docker login

注意要保证image的tag是账户名,如果镜像名字不对,需要改一下tag
docker tag chaoyu/centos-vim zyltry163/centos-vim
语法是: docker tag 镜像名 docker hub名字/仓库名

3.推送docker image到dockerhub docker push 镜像名字:latest 4.在dockerhub中检查镜像 https://hub.docker.com/ 5.删除本地镜像,测试下载pull 镜像文件 docker pull 镜像名

 

私有仓库

 

以上是关于docker 的简单使用的主要内容,如果未能解决你的问题,请参考以下文章

创建自己的代码片段(CodeSnippet)

为啥这段代码会泄露? (简单的代码片段)

markdown docker-compose片段

sh Docker片段

如何使用Android片段管理器传递变量[重复]

c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围