• 容器docker操作


    docker容器中文文档:https://docs.docker-cn.com/

    Dockerfile参数详解:https://yq.aliyun.com/articles/69893

     极客学院docker站点:http://wiki.jikexueyuan.com/project/docker-technology-and-combat/what.html

    在centos安装docker的时候,如果中途将镜像换成了国内的,而又不知道yum源,那么可以yum clean all清理yum 缓存,将/etc/yum.repos.d/文件下的文件换成原装版本(如果有变动的话)

     

    配置匿名国内镜像路径:

    1、编辑文件:/etc/docker/daemon.json

    { "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com" ] }

    2、sudo systemctl daemon-reload

    3、sudo systemctl restart docker

    器内如果要下载命令:需要先更新apt-get或者yum,然后下载相应软件

    将本地文件拷贝到docker:

    • 1、docker inspect -f '{{.ID}}' 容器短id 拿到容器长id,
    • 2、docker cp 本地文件路径/文件名 长id:容器内的路径/新命名

     

    docker完全卸载前还要执行命令查看有没docker包:

    • 执行查看命令yum list installed | grep docker
    • 执行删除命令:$ sudo yum -y remove docker-engine.x86_64

    删除镜像前检查该镜像是否被容器使用:如果使用,首先删除该容器:docker rm -f容器进程id,然后删除镜像:docker rmi 镜像id

    进入容器两种方式:

    • 1、docker run  --name docker_centos -i -t centos /bin/bash
    • 2、docker attach docker_centos

    创建一个db容器,不用指定端口银蛇

    sudo docker run -d --name db training/postgres

    然后创建一个新的 web 容器,并将它连接到 db 容器

    $ sudo docker run -d -P --name web --link db:db training/webapp python app.py

    此时,db 容器和 web 容器建立互联关系。

    --link 参数的格式为 --link name:alias,其中 name 是要链接的容器的名称,alias 是这个连接的别名。

     命令大全:http://www.runoob.com/docker/docker-command-manual.html

    其他:

    查看本地所有镜像:docker images -a

    查看本地所有容器,包括启动、停止、新创建的容器都会显示:docker -ps -a

    搜索镜像:docker search 镜像名[:tag]

    docker inspect 容器ID [| less]查看容器的配置信息

     批量启动停止容器:docker stop "docker ps -a |grep Exited |awk '{print $1}'" ,就会批量停止容器,而且屏幕会打印后面的awk信息,start、inspect对容器操作类似

    docker run --rm 容器ID[:tag] [linux命令示例:echo “have done”],该命令启动容器,然后执行了echo显示信息就会自动删除

     批量删除容器:docker rm `docker ps -a -q`

    打印容器输出日志:docker logs 容器id

    使用 docker port 来查看当前映射的端口配置,也可以查看到绑定的地址

    容器互联:

    通过修改容器创建新的镜像:

    • 1、docker run -it -p 容器名/容器id  /bin/bash
    • 2、第一步操作后进入了容器环境,在容器里进行修改或者创建文件,exit退出
    • 3、docker commit  -m "信息" -a "作者"  容器id 新的镜像id
    • 4、docker images -a可以查看到新生成的镜像文件了
    • 5、docker run -it 新镜像名/id 启动一个新的容器 

     

     建立本地镜像仓库示例:

    1、sudo docker run -d -p 5000:5000 --privileged=true -v /opt/data/registry:/tmp/registry registry

    或者sudo docker run -d -p 5000:5000 --privileged=true -v /opt/data/registry:/var/lib/registry registry

      如果不确定仓库容器里面存放镜像的地方,可以先启动registry容器,然后执行命令:docker run -it registry 容器id sh  进去里面查看存放镜像位置

    --privileged=true作用:最新版本的会出现http传输错误,修改或者新建/etc/docker/daemon.json文件:{ "insecure-registries":["myregistry.example.com:5000"] },或者在启动容器的时候加上参数

    2、重启docker服务:systemctl restart docker

    3、docker tag cmdbapp(已有镜像名或者id) 192.168.244.136:5000/cmdb[:tag](新的镜像名,必须指定地址作为名字一部分)

    4、上传本地镜像到仓库:docker push 192.168.244.136:5000/cmdb

    如果出现上传错误,请新建或者修改文件/etc/docker/daemon.json文件的内容为:{ “insecure-registries”:[“xxx.xxx.xxx.xxx:5000”] } 

    5、从仓库下载镜像到本地:docker pull 192.168.244.136:5000/cmdb

    5、查看本地仓库的所有镜像:curl http://192.168.244.136:5000/v2/_catalog

    想要获取指定镜像文件的信息命令:curl http://192.168.244.136:5000/v2/cmdb/tags/list

    从其他机器pull本地仓库镜像:

    如果出现如下错误:

    可以在本地机器上进行如下操作:就是编辑或者新建/etc/docker/daemon.json文件,输入如下的字典形式的信息,对应的ip地址是私有仓库的地址

    然后重启本机的docker服务:systemctl restart docker

    容器间通信,容器和主机间通信系统默认开发的,如果不能通信,参考网址:http://wiki.jikexueyuan.com/project/docker-technology-and-combat/port_mapping.html

    关于安装了docker的centos的系统,如果启动不了docker,出现如下错误信息:

    docker.service - Docker Application Container Engine
    Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
    Active: failed (Result: exit-code) since 六 2019-03-02 04:48:08 CST; 2min 54s ago
    Docs: http://docs.docker.com
    Process: 15153 ExecStart=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES (code=exited, status=1/FAILURE)
    Main PID: 15153 (code=exited, status=1/FAILURE)

    3月 02 04:48:07 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
    3月 02 04:48:07 localhost.localdomain dockerd-current[15153]: time="2019-03-02T04:48:07.027542587+08:00" level=warning msg="could not change group /var/run/docker.sock to docker: group docker not found"
    3月 02 04:48:07 localhost.localdomain dockerd-current[15153]: time="2019-03-02T04:48:07.031491199+08:00" level=info msg="libcontainerd: new containerd process, pid: 15159"
    3月 02 04:48:08 localhost.localdomain dockerd-current[15153]: time="2019-03-02T04:48:08.038511278+08:00" level=warning msg="overlay2: the backing xfs filesystem is formatted without d_type support, which leads to incorrect behavior. Reformat the filesystem with ftype=1 to enable d_type support. Running without d_type support will no longer be supported in Docker 1.16."
    3月 02 04:48:08 localhost.localdomain dockerd-current[15153]: Error starting daemon: SELinux is not supported with the overlay2 graph driver on this kernel. Either boot into a newer kernel or disable selinux in docker (--selinux-enabled=false)
    3月 02 04:48:08 localhost.localdomain systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE
    3月 02 04:48:08 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine.
    3月 02 04:48:08 localhost.localdomain systemd[1]: Unit docker.service entered failed state.
    3月 02 04:48:08 localhost.localdomain systemd[1]: docker.service failed.

    进行如下操作:

    1.cd /etc/sysconfig 进入这个文件夹下,vi docker 打开这个文件 修改 OPTIONS=‘--selinux-enabled=false 这个参数即可

    2.修改完配置文件启动docker

    逆风的方向最适合飞翔,我不怕千万人阻挡,只怕自己投降。
  • 相关阅读:
    Code Review(代码的自我评审)
    在ANDROID STUDIO环境下使用Espresso 测试框架进行UI测试
    第一个迭代任务——倒计时
    Scrum的3种角色划分——倒计时
    需求分析(WBS图)
    countdown(计时器)
    Countdown(计时器)
    团队模式选择
    软件开发流程
    软件团队的模式
  • 原文地址:https://www.cnblogs.com/daemon-czk/p/10455966.html
Copyright © 2020-2023  润新知