Docker

作者: 观星 | 来源:发表于2016-11-09 17:28 被阅读576次

    Docker入门教程

    Docker组成

    1.docker服务端,docker服务端是一个服务进程,管理着所有的容器

    2.docker客户端,docker客户端则扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程。

    大部分情况下,docker服务端和客户端运行在一台机器上。

    Boot2Docker的缺省用户名为docker,密码为tcuser。mac上

    Docker命令

    docker容器

    进入容器并运行/bin/zsh

    docker exec -t -i cbe2e83dc98a /bin/zsh
    

    docker全局命令

    $ docker version
    
    // 查看正在运行的容器
    $ docker ps
    
    $ docker ps -a 查看所有的容器,包括已经停止的
    
    $ docker ps -a -q 查看已经停止的容器
    
    $ docker inspect 容器前缀或者镜像前缀
    
    //搜索镜像
    $ docker search 镜像名称
    
    $ docker stop 容器id
    
    // 查看docker日志
    $ sudo cat /var/log/messages | grep docker
    

    docker run

    • -p

      -p 2222:22 端口映射,访问运行docker的主机的2222端口,等同于访问容器的22端口、也就是ssh端口

      docker run -p 2222:22 zyh/login /usr/sbin/sshd -D

      注意:docker直接使用iptables来实现端口映射,因此,需要主机使用iptables,iptables -t nat -L

    • -v

      -v /usr/owl:/usr/owl

      主机目录:docker容器挂载目录, 访问容器挂载目录,即为访问主机目录

    • -i

      打开容器的标准的输入STDIN

    Docker镜像

    • 删除名称为<none>的镜像,这是一个危险操作,因为images创建是分层的,其中一些就是没有名字的

        $ docker rmi $(docker images | awk '/^<none>/ { print $3 }')
      
    • 通过容器cc820b60f2aa生成镜像。镜像名称为123

        $ docker commit cc820b60f2aa 123
      

    docker save & load

    $ docker save kiwenlau/hadoop:1.0 > /home/kiwenlauBackUp.tar
    $ scp /home/kiwenlauBackUp.tar root@10.0.0.171:/home/
    
    $  docker load < /home/kiwenlauBackUp.tar
    

    常见问题

    Cannot connect to the Docker daemon. Is 'docker -d' running on this host?

    • 使用 ps命令查看进程 ps -ef | grep docker

    • sudo service docker start 重启docker服务试试

    • 如果进程的确在运行,那可能是当前用户 is not allowd to access docker

    To do this add your self to the docker group.

    $ sudo usermod -aG docker <userid>
    
    • 也可能是docker守护进程属于root用户,当前非root用户可以加上sudo来运行docker 命令

    docker attach没有反应

    $ docker run -p 22 /usr/sbin/sshd -D
    

    这样的一个容器的驻守程序就是sshd。所以docker attact截取的输入输出也就是该进程(/user/sbin/sshd -D)的。而这样一个进程,跟交互型的bash程序是不一样的。这个进程是不接受输入的。所以你的输入不会有什么效果。如果想交互,可以尝试 docker run -d -p 22 /bin/bash。

    docker save & load

    $ scp /home/kiwenlauBackUp.tar root@10.0.0.171:/home/
    

    WARNING: IPv4 forwarding is disabled. Networking will not work.

    解决办法:

    $ vi /etc/sysctl.conf
    

    或者

    $ vi /usr/lib/sysctl.d/00-system.conf
    

    添加如下代码:

    $ net.ipv4.ip_forward=1
    

    重启network服务

    $ systemctl restart network
    

    查看是否修改成功

    $ sysctl net.ipv4.ip_forward
    

    如果返回为“net.ipv4.ip_forward = 1”则表示成功了

    相关文章

      网友评论

          本文标题:Docker

          本文链接:https://www.haomeiwen.com/subject/psktpttx.html