• docker基础


    run 启动

    -i  让终端保持打开状态

    -t 启动一个tty

    -name  起一个容器名

    -h  指定主机名

    -v  数据卷

    查正在运行的容器  docker ps 

    查所有容器 docker ps -a

    查上一次运行的容器 docker ps -l

    删除一个或多个容器 docker rm ContainerName   删除一个或多个镜像 docker rmi imagesname

    查已经下载的镜像 docker images

    启动一个镜像  docker run -it  docker.io/centos      即 docker run -it imagesname:TAG    默认TAG是latest       制定一个名字docker run -it --name zzx centos  一定要加--name不然认不出

    -d后台启动一个容器 docker run -d -it --name zzx centos

    停止正在运行的容器docker stop 600db9c1e60b(ContainerID下同)

    启动一个已经停止的容器 docker start bc3a516241b2(start不能够再指定容器启动时运行的指令,如果没有前台进程start可能失败 一启动就退出)

    进入一个在后台运行的容器 docker attach bc3a516241b2 (docker exec -it ContainerName /bin/sh)   括号里的用exit也不会真正退出容器继续后台运行,   用attach进入的用exit会退出容器必须用ctrl P Q退出才能继续后台运行

    启动一个容器就会在/var/run/docker/libcontainerd下生成相应的文件   pid和sock文件也在这个目录

    看一个容器的ps          docker top e06fbdd8e829

     新建的容器先  yum -y install epel-release tar

    查看容器ip        docker inspect --format='{{.NetworkSettings.IPAddress}}' my_ng  (或者docker inspect 'name'|grep -w IPAddress)        查端口映射 docker port my_ng

    已有的容器commit成images (只能提交正在运行的container,即通过docker ps可以看见的容器)    docker commit -m "installed nginx" -a "zzx" bc3a516241b2 nginx/centos

    获取容器PID

    [root@nmserver-7 ~]# docker inspect --format "{{.State.Pid}}" mydk

    3864

    [root@nmserver-7 ~]# nsenter --target 3864 --mount --uts --ipc --net --pid     #根据pid进入容器   可根据这两行写一个脚本进入容器

     -v

    映射目录到属主机中

    [root@nmserver-7 _data]# docker run --name volumetest -h zzxv -it -v /zzxtest zzxng /bin/bash      #启动一个容器并映射  /zzxtest 到属主机中

    [root@nmserver-7 _data]# docker inspect volumetest | grep -A 1 Source   # 查看映射的map
    "Source": "/var/lib/docker/volumes/49925f2e0adf592f4336c85e737a17265c2ad11a3e333c50ea81fef1aa764543/_data",
    "Destination": "/zzxtest",

    docker inspect {{.Volumes}} volumetest 这句报错 没法用

    指定目录映射

    [root@nmserver-7 zzx]# docker run --name ysdir -it -p 1234:80 -v /root/zzx:/ngdir zzxng:001 /bin/bash    #映射属主机 /root/zzx到/ngdir

    [root@nmserver-7 zzx]# docker run --name urCONTAINER -it --volumes-from CONTAINERname imageName    #创建一个容器cpcp  共享ysdir的映射目录  

    DOCKER 给运行中的容器添加映射端口

    方法1

    1、获得容器IP

    container_name 换成实际环境中的容器名

    docker inspect `container_name` | grep IPAddress
    • 1

    2、 iptable转发端口

    将容器的8000端口映射到docker主机的8001端口

    iptables -t nat -A  DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000
    
    • 1
    • 2

    方法2

    1.提交一个运行中的容器为镜像

    docker commit containerid foo/live
    • 1

    2.运行镜像并添加端口

    docker run -d -p 8000:80  foo/live /bin/bash
  • 相关阅读:
    VS2008中应用.NET 4.0中的代码契约
    生日快乐
    Did you know…How to maintain scrollposition after post back? z
    微软正式发布SQL Server 2008
    想要注册一个写日记用的博客(选好了)
    SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY的区别(比较) z
    Microsoft Visual Studio 2010 and the .NET Framework 4.0 CTP下载
    mysql
    如何用iframe代码显示调用网页的指定部分
    文件夹权限
  • 原文地址:https://www.cnblogs.com/hanxing/p/7832200.html
Copyright © 2020-2023  润新知