docker学习一

1. docker安装

  • 安装环境linux

    centos7.4docker

  • 开始安装json

    下载docker官方yum源centos

    curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker.repobash

    开始安装:yum install -y docker-ce服务器

2.docker镜像管理

  • docker镜像下载curl

    下载命令svn

    docker pull xxx xxx表示镜像名称,以下载centos镜像就是ocker pull centosurl

    若是下载速度很慢能够配置docker下载加速器centos7

    vi /etc/docker/daemon.json 加入如下内容:

    {
    "registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"]

    }

  • docker经常使用命令

    1.查看本地的镜像:docker images

    2.搜索镜像,其中xxx是关键词:docker search xxx

    3.给镜像打标签:docker tag centos test123:222333

    4.镜像启动为容器,-i表示让容器的标准输入打开,-t表示分配一个伪终端,-d表示后台启动,要把-i -t -d 放到镜像名字前面:docker run -itd centos

    5.查看docker启动中的容器,加上-a选项后能够查看全部容器,包括未运行的:docker ps

    6.用来删除指定镜像,其中后面的参数能够是tag,若是是tag时,其实是删除该tag。当后面的参数为镜像ID时,则会完全删除整个镜像,全部标签也会一同删除:docker rmi xxx

3.Docker经过容器建立镜像

  1. 进入容器

    docker exec -it xxxxx bash 是进入容器的命令,其中xxxxx为容器id,这个id能够用docker ps查看,最后面的bash为进入容器后咱们要执行的命令

  2. 在容器内安装net-tools

    在容器内执行:yum install -y net-tools

  3. 提交新镜像

    docker commit -m "change somth" -a "somebody info" container_id new_image_name 参数说明:container_id经过docker ps -a获取,后面的new_image_name为新镜像名字

    示例:

    docker commit -m "install net-tools" -a "wxy" 82d0ec485063 centos_net-tolls

    这个命令有点像svn的提交,-m 加一些改动信息,-a 指定做者相关信息,82d0ec这一串为容器id,再后面为新镜像的名字

    提交完成后,使用docker image查看:

4.Docker使用模板建立镜像

  1. 下载一个模板

    wget http://download.openvz.org/template/precreated/centos-6-x86-minimal.tar.gz

  2. 导入该镜像

    cat centos-6-x86-minimal.tar.gz |docker import - centos6

  3. 以现有的镜像导出一个文件

    docker save -o centos_net-tolls.tar centos_net-tolls

  4. 把原有的进行删除,把导出的镜像导入进去

    docker images 获取镜像id

    docker rmi acaf23cc3076

    重启导入镜像

    docker load --input centos_net-tolls.tar 或者docker load < centos_net-tolls.tar也能够

5.docker镜像管理

  1. 启动容器

    建立一个容器,可是不启动: docker create -it centos6 /bin/bash

    启动容器:docker start 30034995f99a

    启动完成后能够docker ps查看

    可使用docker run来进行启动,它至关于先create后再start容器

    docker run -it centos6 /bin/bash

    docker -d可让容器在后台运行,如:

    docker run -itd centos6 /bin/bash

  2. 启动容器时给容器自定义名称

    docker run -itd --name "centos_1" centos6 /bin/bash

  3. 容器退出后直接删除

    可让docker容器运行一个命令后退出并删除容器,如让一个容器运行sleep 30,等待30秒后容器会中止并删除。

    docker run --rm -itd centos /bin/bash -c "sleep 30"

  4. docker容器log查看

    启动容器,并运行一个命令

    docker run -itd 80d356edba18 bash -c "echo 123"

    使用docker logs查看

    docker logs 3d995b4d

  5. 临时docker打开虚拟终端

    使用docker exec 能够打开容器的临时终端,exit后容器仍是正常运行

    docker exec -it f3381b9c3b2e /bin/bash

    docker attach  container_id 这种方式也可打开终端,可是exit后容器就中断了,因此这种方式通常不用

  6. 删除容器

    docker rm  container_id 能够删除容器,container_id是ps的时候查看到的,这样就能够把container删除,若是是运行的容器,能够加-f

    docker rm -f f3381b9c3b2e

  7. 导出容器

    docker  export  container_id  > file.tar 这样能够导入容器,生成一个文件。能够迁移到别的机器进行导入

    docker export 831cf59980c4 > wxy_test.tar

  8. 导入容器

    cat file.tar |docker import - wxy_test 这样会生成新的镜像

    cat centos-6-x86-minimal.tar.gz |docker import - wxy_test

6.docker仓库管理

  1. 下载registry镜像

    registy为docker官方提供的一个镜像,咱们能够用它来建立本地的docker私有仓库。

    docker pull registry

  2. 启动registry镜像

    docker run -d -p 5000:5000 registry

    启动registry镜像,-p的意思是把容器端口映射到宿主机上,左边为宿主机端口,右边为容器监听端口

    访问registry

    curl 127.0.0.1:5000/v2/_catalog

  3. 把镜像上传到私有仓库

    首先给私有仓库tag一下,tag必需要有私有仓库的ip:port

    docker tag wxy_test 172.18.11.153:5000/centos

    修改配置文件

    vi /etc/docker/daemon.json

    改成如下内容:

    { "insecure-registries":["172.18.11.153:5000"] }

    完成后重启docker

    systemctl restart docker `
    启动容器

    docker start 64584c4300f1

    进行push

    docker push 172.18.11.153:5000/centos

    查看推送的镜像

    curl 127.0.0.1:5000/v2/_catalog

  4. 在其余机器上下载刚上传的镜像

    在其它安装docker的服务器上修改配置文件

    /etc/docker/daemon.json

    修改如下内容:

    { "insecure-registries":["47.106.84.56:5000"] }

    ip为以前上传镜像的registry的服务器ip,这里跟以前的ip不同是由于用了云服务器。

    修改完成后重启docker,而后进行pull

    docker pull 47.106.84.56:5000/centos

相关文章
相关标签/搜索