docker-itd(dock儿itd)

本篇文章给大家谈谈docker-itd,以及dock儿itd对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

docker 使用

运行容器

sudo docker run -it -v /home/lcj/test_docker:/home/lcj/test_docker tensorflow/tensorflow:1.13.1-gpu-py3

参数:

-d 后台运行并返回容器ID,如 -itd

-e 设置环境变量,如 -e NVIDIA_VISIBLE_DEVICE=0 使用编号为 0 的GPU

-i 打开 STDIN,用于控制台交互,通常跟 -t 一起使用

--net 容器网络设置,如 --net my_network,或者 --net=contianer:NAME_or_ID,使用其他容器的网络,共享 IP 和 PORT 等资源

--restart 指定容器停止后的启动的策略,如 --restart=always

--runtime=nvidia 使用 nvidia 模式运行,跟 -e 一起使用,可以在容器里使用 GPU

-t 为容器重新分配一个伪输入终端,通常与 -i 一起使用

-v 给容器挂载存储卷,挂载到容器的某个目录,如 -v /home/lcj/test_docker:/home/lcj/test_docker

-w 指定容器的工作目录

停止容器

docker stop 容器ID

或者 docker stop `docker ps -a -q` 停止所有容器

重启容器

docker restart 容器ID

进入一个运行中的容器

docker attach 容器ID

保存容器

docker save myimage | bzip2 -9 -c /home/lcj/save.tar.bz2

加载容器

bzip2 -d -c /home/lcj/save.tar.bz2 | docker load

杀掉运行中的容器

docker kill -s KILL 容器ID

-s:向容器中发送一个信号

docker rm 命令

参数:

-f :通过 SIGKILL 强制删除一个容器,如 docker rm -f a

-l:移除容器间的网络连接,而非容器本身,如 docker rm -l b,其中 b 为连接名,而非容器名

-v:删除与容器关联的卷

docker create :创建一个容器但不运行它,语法同 docker run

docker ps

-a:显示所有的容器,包括未运行的

-f:根据条件过滤显示的内容

-l:显示最近创建的容器

-n:列出最近创建的 n 个容器

-q:静默模式,只显示容器 ID

列出所有创建的昌培容器 ID

docker ps -a -q

停止所有容器 ID

docker stop  `docker ps -a -q`

获取容器/镜像的元数据

docker inspect 容器/镜像名

docker top :查看容器中的进程信息

docker top a(a 是容器)

docker attach :链接到正在运行的容器(该容器必须正在运行)

docker attach a (a 是容器)

docker events :从服务器获取实时事件

-f:根据条件过滤事件

--since:从指定的时间戳后显示所有的事件

--until:流水时间显示到指定的时间为止

显示docker 2016年7月1日后的所有事件

docker events -since="1467302400"

显示docker 镜余迅配像为mysql:5.6 2016年7月1日后的相关事件

docker events -f "image"="mysql:5.6" --since="1467302400"

备注:如果指定的时间是到秒级的,需要将时间转成时间戳。如果时间为日期的话,可以直接使用,如--since="2016-07-01"

docker export :将文件系统作为一个 tar 压缩文件导出到 STDOUT

docker port :列出指定的容器端口的映射,或者查找将 PRIVATE_PORT NAT 到面向公众的端口

docker port a(a 为容器名)

docker commit : 从容器创建一个新的镜像

-a:提交竖指的镜像作者

-c:使用 Dockerfile 文件来创建镜像

-m:提交时说明的文字

-p:在 commit 时暂停容器

docker commit -a 'lcj' -m 'has update' 容器 ID 镜像名

docker cp :用于容器与主机之间的数据拷贝

将主机的 test_docker 目录拷贝到容器 /home/lcj 目录下

docker cp /home/lcj/test_docker 容器 ID:/home/lcj/

将容器 /home/lcj 目录拷贝到主机的 test_docker 目录下

docker cp 容器 ID:/home/lcj/ /home/lcj/test_docker

docker login/logout :登录或退出一个 Docker 镜像仓库,如果未指定镜像仓库地址,则默认为 官方 Docker Hub

docker login -u 用户名 -p 密码

docker logout

docker pull :从镜像仓库中拉取或者更新指定镜像

docker pull java

docker push :将本地的镜像上传到镜像仓库,需先登录到镜像仓库

docker push myapache:v1

docker search :从 Docker Hub 查找镜像

--automated,只列出 automated build(自动生成) 类型的镜像

--no-trunc,显示完整的镜像描述

-s:列出收藏数不少于指定值的镜像

从Docker Hub查找所有镜像名包含java,并且收藏数大于10的镜像

docker search -s 10 java

docker images :列出本地所有的镜像

-a:列出本地所有的镜像(含中间映像层,默认情况下,过滤中间映像层)

-q:只显示镜像 ID

docker images 或 docker images ubuntu,列出本地所有镜像或本地仓库名为 ubuntu 的所有的镜像

docker  rmi :删除一个或多个镜像

-f:强制移除

--no_prune:不移除该镜像的过程镜像,默认移除

强制删除本地镜像w3cschool/ubuntu:v4

docker rmi -f w3cschool/ubuntu:v4

docker tag :标记本地镜像,将其归入到某一个仓库

将镜像ubuntu:15.10标记为 w3cschool/ubuntu:v3 镜像

docker tag ubuntu:15.10 w3cschool/ubuntu:v3

docker build:使用 Dockerfile 文件创建镜像

使用当前目录的Dockerfile创建镜像

docker build -t w3cscholl/ubuntu:v3 . (不要漏掉最后的 . 符号)

使用URL  github.com/creack/docker-firefox  的 Dockerfile 创建镜像

docker build github.com/creack/docker-firefox

docker history :查看指定镜像的创建历史

docker save :将指定镜像保存成 tar 压缩文件

-o:输出到文件

docker save -o my_ubuntu_v3.tar w3cschool/ubuntu:v3

docker import:从压缩文件中创建镜像

-c:应用 docker 指令创建镜像

-m:提交时的说明文字

从镜像归档文件my_ubuntu_v3.tar创建镜像,命名为w3cschool/ubuntu:v4

docker import my_buntu_v3.tar w3cschool/ubuntu:v4

Docker 搭建 Nginx 集群

实现负载均衡其实并不难、只是很多人不敢去尝试而已,简单来说就是:

在nginx里面配置一个upstream,然后把相关的服务器ip都配置进去。然后采用轮询的方案,然后在nginx里面的配置项里,proxy-pass指向这个upstream,这样就能实现负载均衡.

nginx的负载均衡有4种模式:

1)、轮询(默认)

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2)、weight

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的物闹情况。

3)、ip_hash

    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

4)、fair , url_hash(第三方)

    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    高贺docker pull nginx ( docker pull daocloud.io/nginx 这个稍微快点 )

    docker run -itd --name nginx1 -p 8080:80 nginx /bin/bash -- 主

    docker run -itd --name nginx2 nginx /bin/bash

    docker run -itd --name nginx3 nginx /bin/bash

    docker ps 查看

       docker network ls

docker nerwork inspect d530da7ebbd3

       进入nginx1 (主)

            docker exec -it d530da7ebbd3 /bin/bash   

            安装 vim 编辑器 (如有其他、尽可随意)   ---  注意:nginx2、nginx3 均安装 编辑器、下文不再赘述

                        1.  apt update   2.  apt install vim 

            cd /etc/nginx/

            vim nginx.conf

    进入nginx2

                docker exec -it e59de010efff /bin/bash

                    cd /usr/share/nginx/html/

                    vim index.html

                            Welcome to nginx! 后添加: From 172.17.0.3:80 即可

            进入nginx3

                docker exec -it 0f12240cb622 /bin/bash

                    cd /usr/share/nginx/html/

                    vim index.html

                            Welcome to nginx! 后添加: From 172.17.0.4:80 即可

重启三个nginx服务   service nginx restart

此时如果 docker容器会关闭、因此需要再次重启

        docker start d530da7ebbd3

        docker start e59de010efff

        docker start 0f12240cb622

测试结果

补充:

    上述说到 负载均衡有4种模式、

配置分别如下:

轮询模式:

    upstream webname {

    戚蚂派    server192.168.0.1:8080;

        server192.168.0.2:8080;

  }

weight 模式:

    upstream webname {

        server192.168.0.1:8080 weight=2;

        server192.168.0.2:8080 weight=1;

  }

ip_hash模式:

 upstream webname {

    ip_hash;

    server192.168.0.1:8080;

    server192.168.0.2:8080;

  }

其他配置:

设置某一个节点为backup,那么一般情况下所有请求都访问server1,当server1挂掉或者忙的的时候才会访问server2

upstream webname {

    server192.168.0.1:8080;

    server192.168.0.2:8080 backup;

  }

设置某个节点为down,那么这个server不参与负载。

upstream webname {

    server192.168.0.1:8080;

    server192.168.0.2:8080 down;

  }

[img]

docker itd 什么意思

docker

英-['备棚dɒkə]

美裂简-['dɑkɚ]

释义

n. 码头工人

物件肆滚裤

Docker安装教程

1.在线安装

curl -fsSL | bash -s docker --mirror Aliyun

在线安哗春装方式二

curl -sSL | sh

3.查看Docker

yum list docker-ce --showduplicates | sort -r

4.查看Docker版本

docker version

5.启动Docker

systemctl start docker

6.测试Docker是否启动成功

(1).拉取HelloWorld的镜像

docker pull hello-world

(2).运行hello-world镜像

docker run hello-world

看到下面的图就证明安装成功了

docker search redis

2.取最新版的 Redis 镜像

docker pull redis:latest

3.查看本地镜像

docker images

4.运行容器(这是只能本地访问,但是我们需要进行外网访问)

docker run -itd --name redis-test -p 6379:6379 redis

-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

5.通过 redis-cli 连接测试使用 redis 服务。

docker exec -it redis-test /bin/姿芦衫bash

6.查看 Redis是否启动成功

ps aux | grep redis-server

出现如下,则为成功

上面的方法只能本地访问,我们需要的是外网访问redis

4.创建conf 和 data 文件夹

mkdir /usr/迹腔local/docker/conf

/usr/local/docker/data

然后再conf下创建redis.conf 的配置文件

放入如下内容,密码可不用配置

6.查看Redis是否启动

docker ps

就可以看到redis了,如果状态是UP,那么就可以确定是安装成功了,启动完成之后,把云服务器的6379端口出入打开,就可以看到了。

这时候我们就可以去使用外部工具进行连接了。

1.拉取镜像

docker pull mysql

2.在opt下创建文件夹

cd /opt/

mkdir mysql_docker

cd mysql_docker/

echo $PWD

3.启动mysql容器,在var/lib/docker/containers/下查看容器

cd /var/lib/docker/containers/

4.查看mysql进程

docker ps -a

5.进入mysql容器,并登陆mysql

docker exec -it mysqlserver bash

mysql -uroot -p

123456

6.开启远程访问权限

use mysql;

select host,user from user;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

flush privileges;

然后去连接一下数据库测试就可以了

7.关闭docker中mysql容器

docker stop mysqlserver

8.关闭docker

systemctl stop docker

docker私有仓库搭建

docker pull registry

docker run -itd -v /registry/data(数据存放的路径):registry/registry(镜像存放路径)-p 8080:5000 registry

检查仓库运行状态: 

请空塌求成功则是运行状态

docker pull ubuntu

docker tag ubuntu:latest localhost:8080/ubuntu:v0.1 ( ip:8080/ubuntu:v0.1 执行IP方法需要配置)

docker push localhost:8080/ubuntu:v0.1  (ip:8080/岩纳ubuntu:v0.1)

docker pull  localhost:8080/ubuntu:v0.1  (ip:8080/ubuntu:v0.1)

FQA:

1、执行以下命令需要先配置daedemo.json

{

  "features": {

    "buildkit": true

  },

  "insecure-registries": [

    "192.168.0.101:8080"

  ],

  "experimental": false,

  "builder": {

    "gc": {

      "enabled": true,

      "defaultKeepStorage": "20GB"

    }

  }

}

2、docker push received unexpected HTTP status: 503 Service Unavailable

  有2种情况:

    1、是私有本粗亏没地仓库在同局域网,查看服务是否启动,一般是没有启动    

    2、可能需要证书:docker run -d \

  -p 8080:5000 \

  -v /usr/local/registry:/var/lib/registry \

  -v /usr/local/certs:/certs \

  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt \

  -e REGISTRY_HTTP_TLS_KEY=/certs/server.key \

  --restart=always \

  --name registry \

  registry

Docker映射配置文件到宿主机

    最近在做mysql中间件的docker,搞了mycat、mysql route都拉不起来容器,最后试试proxysql可以,proxysql官方发布了镜像,感觉比较可靠。但是遇到一个小问题,笔者以前写过一篇文章-Docker MySQL数据持久化,用数据卷挂载的方式将mysql的数据(映射数据目录)持久化到宿主机。那么配置文件也是有必要来映射的,注意就可以避免在容器内安装编辑器。

    容器内有apt  和ap-get工具,安装前要apt update(或者apt-get  update,较慢)更新软件列表,然后apt install(或者apt-get  install),这样会增大容器空间,是没有必要的。笔者以前就是这样操作的,但是比较麻烦,而且容器如果是内部网络的话来安装的话就更加不方便了。笔者在映射数据目录时使用-v /home/mysql/data:/var/lib/mysql 。但是使用同样的分发,今天在映射proxysql的配置文件proxysql.cnf时遇到一个麻烦。

    先看看笔者挂载时遇到的问题: Are you trying to mount a directory onto a file。

    都是文件,那里来的目录呢。映射的意思是将可以将宿主机目录挂载到容器中,那么可能就是将/home/mycentos/proxysql.cnf设别为一个目录了,因为容器内/etc/proxysql.cnf的是真实存在的文件。在/home/mycentos/目录下ls -l查看一下。

    果然是目录!辗转反侧找到原因是 docker启动容器进行挂载的时候,如果路径不存在,那么docker会自动创建一个目录。

    笔者的home/mycentos/目录下没有proxysql.cnf文件,挂载时docker就新建了一个proxysql.cnf的目录,但是这个对于挂载数据目录时是十分有用的,对于配置文件来说是不行的。于是笔者在目录home/mycentos/下新建了一个proxysql.cnf文件,再次运行docker run成功(前面运行失败的容器需要删除,不然名称冲突)。

docker run -itd --name proxysql -p 16032:6032 -p 16033:6033 -p 16070:6070 -v /home/mycentos/proxysql.cnf:/etc/proxysql.cnf proxysql/proxysql

    挂载后,容器内的/etc/proxysql.cnf配置文件是空的,不挂载的情况下橡陪樱是保持默认配置文件内容的,使用徐需要在编辑/home/mycentos/proxysql.cnf文件,然后进入容器后/etc/proxysql.cnf配置文件会跟随改变的。但是配置文件为空,那么就要从头开始配置,这对于配置文件很多的话是不方便的,保留原来的配置配置文件,再在里面修改会更加方便。这里笔者只能想到先运行一个容器,然后docker cp拷贝容器内的文件或者文件夹,在删除这个容器,另外开一个配置文件映射的容器。

    映射配置文件避免在容器内进梁丛行apt操作,使得容器膨胀过大。比如你要安装编辑器vi,首先要apt update更新,然后apt install ,相比于乱嫌在容器外对其进行操作来说,更加麻烦没必要。

关于docker-itd和dock儿itd的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表