Docker容器学习-sqlflow前奏

docker 容器学习

容器使用

启动容器

使用ubuntu镜像启动一个容器,参数以命令行模式进入该容器:

$docker  run  -it  ubuntu  /bin/bash

参数说明:

-i 交互式操作

-t 终端

ubuntu 镜像

/bin/bash 放在镜像名后的是命令,这里我们希望有个交互式shell

启动已停止运行的容器
#查看所有容器命令
docker  ps  -a
#启动一个已停止的容器
docker  start b750bbbcfd88
后台运行
docker  run  -itd  --name  ubuntu-test  ubuntu  /bin/bash

参数-d,容器启动后会进入后台。此时想进入容器,可以通过以下指令进入:

docker   attach   或   docker   exec 推荐后者

container ID 容器ID;image,使用的镜像;COMMAND ,穷容器时运行的命令;CREATED 容器创建时间;STATUS 容器状态;

状态有7种:created ,restarting , running ,removing 迁移中,paused,exited,dead

PORTS:容器的端口信息和使用的连接类型 tcp udp

NAMES 自动分配的容器名称。

docker attach <容器ID> 注:使用该命令后,如果从这个容器退出,会导致容器的停止。

docker   exec   -it <容器ID>  /bin/bash

docker exec执行后,如果从这个容器中退出,不会导致容器停止。可以进入到mysqlflow容器中

停止一个容器
docker  stop  <容器ID>

停止的容器可以通过

docker  restart   <容器ID>
导出和导入容器

导出本地某个容器

#导出容器<容器ID>快照到本地文件  ubuntu.tar
docker  export  <容器ID>   >ubuntu.tar
#导入容器快照,将快照文件导入到镜像中
cat  docker  /opt/ubuntu.tar | docker import  - test/ubuntu:v1

也可以通过制定URL或者某个目录来导入

docker   import   http://example.com/exampleimage.tgz  example/imagerepo
删除容器
docker   rm  -f <容器ID>
#该命令可以清理掉所有处于中止状态的容器
docker  container  prune
运行一个WEB应用

用docker构建一个web应用程序

docker  pull  training/webapp  #载入镜像
docker  run  -d  -P  training/webapp python  app.py

参数-d 让容器后台运行

-P 将容器内部使用的网络端口映射到我们使用的主机上

因此可以通过-P参数来设置不同的端口

docker  run  -d  -P 5000:5000 training/webapp  python app.py

通过docker ps 可以查看容器的端口映射,docker还提供了了另外一个快捷方式docker port

docker  port  <容器ID>/或者容器ID对应的名字

查看web应用程序日志

docker  logs  -f  <容器ID或NAME>

-f让docker logs像使用tail -f 一样来输出容器内容的标准输出

查看web应用程序容器的进程
docker top  wizardly_chandrasekhar(NAME)
检查web应用程序
docker  inspect  <容器NAME>
停止WEB应用程序
docker   stop   容器ID、NAME
重启web应用程序

docker start 容器ID

docker ps -l 查询最后一次创建的容器

正在运行的容器可以使用docker restart 命令来重启。

移除WEB应用容器

docker rm 容器NAME

删除容器时,容器必须是停止状态,否则会报错:

error response from daemon : You cannot remove a running container 。。。

DOCKER 镜像使用

列出镜像列表

docker images 列出本地主机上的镜像

docker pull ubuntu:13.10 获取一个新的镜像,当我们在本地主机上使用一个不存在镜像时,docker就会自动下载这个镜像。

查找镜像

Docker Hub网址为 https://hub.docker.com/

docker search httpd 可以使用docker search 命令来搜索镜像

docker pull httpd 使用命令docker pull来下载镜像

docker run httpd 下载后既可以使用该镜像

docker rmi hello-world 镜像删除使用docker rmi

创建镜像

两种方式:

  1. 从已创建的容器中更新镜像,并且提交这个镜像
  2. 使用Dockerfile 指令来创建一个新的镜像

更新镜像,在之前,我们需要使用镜像来创建一个容器:

docker   run  -t  -i ubuntu:15.10 /bin/bash

在运行的容器内使用,(进入容器 docker exec )

apt-get update 命令来更新,在操作之后,输入exit命令来退出这个容器。

通过docker commit 来提交容器副本

docker commit -m=“has update” -a =“runoob” 容器ID runboob/ubuntu:v2

参数说明:

-m 提交描述信息

-a 制定镜像作者

容器ID

runboob/ubuntu:v2 制定要创建的目标镜像名称

构建镜像

docker build 从零开始创建一个新的镜像

cat   Dockerfile
FROM centos:6.7
MAINTAINER  Fisher "[email protected]"

RUN /bin/echo 'root:123456'  | chpasswd
RUN useradd  runoob
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的

第一条FROM ,指定使用那个镜像源

RUN指令告诉docker在镜像内执行命令,安装了什么

然后我们使用Dockerfile文件,通过 docker build 命令来构建一个镜像

dockers build -t runoob/centos:6.7 .

参数说明:

-t 指定要创建的目标镜像名

.: Dockerfile文件所在目录,可以指定Dockerfile的绝对路径

使用docker images 查看创建的镜像已经在列表中存在,镜像ID为…

使用新的镜像来创建容器:

docker  run   -t -i runoob/centos:6.7  /bin/bash
设置镜像标签
docker   tag  860c279d2fec  funoob/centos:dev

docker tag 镜像ID :860c279d2fec ,用户名称/镜像源名(repository name)

和新的标签名tag ,仓库名:funoob/centos

Docker 容器连接

网络端口映射
docker   run  -d  -P training/webapp  python  app.py

可以指定容器绑定的网络地址,比如绑定127.0.0.1

使用-P参数创建一个容器,使用docker ps 可以查看容器端口5000绑定主机端口32768

-P容器内部端口随机映射到主机的高端口

-p容器内部端口绑定到指定的主机端口

docker  run  -d -p 5000:5000 training/webapp pyton app.py

指定绑定IP

docker  run  -d -p 127.0.0.1:5001:5000 training/webapp  python  app.py

docker ps

默认都是绑定tcp端口,如果要绑定UDP端口,可以在端口后面加上/udp

docker run  -d -p 127.0.0.1:5000:5000/udp training/webapp python  app.py

docker port 命令可以让我们快捷的查看端口的绑定情况

docker  port  container_name 5000
Docker容器互联

端口映射并不是唯一吧docker连接到另一个容器的方法。

docker有一个连接系统允许将多个容器连接在一起,共享连接信息。

docker连接会创建一个父子关系,其中父容器可以看到自容器的信息。

容器命名

当我们创建一个容器的时候,docker会自动对它进行命名。

docker run  -d -P --name  runoob training/webapp python  app.py

docker ps -l 使用docker ps 命令来查看容器名称

新建网络
连接容器
配置DNS
docker安装centos
docker安装mysql

参考:

https://www.runoob.com/docker/docker-image-usage.html

https://www.kubernetes.org.cn/doc-9 k8s

kubernetes

https://my.oschina.net/jamesview/blog/2994112

docker kubernate

https://www.cnblogs.com/l-hh/p/10395730.html

容器参考

你可能感兴趣的:(docker,Docker,sqlflow,sql机器学习)