docker 命令

#####################################################################
#                        docker 命令                                 #
#####################################################################
$ docker states  #查看容器运行的情况

$ docker run <image>         #创建容器
$ docker start <containerID> #启动创建了的容器

$ docker images  #列出本地的images
$ docker search ubuntu #从docker hub上搜索镜像 ubuntu
$ docker search -s 80 ubuntu #只显示80星以上的结果
$ docker pull ubuntu #拉取镜像到本地
$ docker run -d -P nginx
        # -P Publish all exposed ports to random ports
        #    为容器暴露出来的借口分配随机端口号
$ docker run -d -p 5000:5000 registry #后台运行registry 并映射主机5000端口
                #-d  Run container in background and print container ID
                #-p 5000:5000 Publish a container's port(s) to the host 可一次指定多个
                # [host]:[container]  
$ docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry #同上
            # -v /opt/data/registry:/tmp/registry  挂载主机目录 到 容器中  可读可写
            #              [主机目录]:[容器目录]
            #              容器中的原目录会被隐藏
$ docker run -d -p 82:80 -v /home/b/tempForNginxContaner:/bfyMount:ro  nginx
      #  ------------------------------------------------------>  :ro 只读挂载                                           
$ docker run -d -v /bfy nginx #给镜像nginx新建一个容器 并挂载/bfy目录
                              #对应的host上的目录可用 docker inspect 查看
$ docker run -d --volumes-from <容器id> nginx
      #  ---->  创建容器并引用现有容器的volumes
      #  可传入多个--volumes-from 引用多个容器的volumes
$ docker run -rm nginx #运行结束后删除容器
$ docker run -d  --link <容器名> nginx #新建容器并链接已有的容器
$ docker run -d  --link <容器名>:<新建容器中的别名> nginx #新建容器并链接已有的容器

$ docker network creat mynet 
    # 创建自定义网络mynet
$ docker run --net mynet  --ip 172.1.0.21 nginx
    # 运行容器指定网络和ip(只能在自定义的网络上指定IP)

$ docker ps #查看正在运行的容器
$ docker ps -a #查看all容器

$ docker ps -s # 查看容器文件大小

$ docker rm $(docker ps -a -q) #删除所有的容器
                         # -q 仅列出容器ID
$ docker rmi $(docker images -q)    # Remove all images from this machine

$ docker rm -v <id> #删除容器及关联的卷
          # -v 删除关联的卷

$ docker pause <id|容器名> #暂停容器的运行
$ docker stop <id> #停止运行容器
$ docker kill <id>   # Force shutdown of the specified container
$ docker attach --sig-proxy=false <id> #这样进入容器后可以用 Ctrl+C 退出而不影响容器运行
$ docker inspect <id> #Return low-level information on a container or image
                      #显示一个容器或image的!全部信息!
                      # !!!所有信息都可以在这里找到!!!
$ docker inspect --format "{{ .State.Pid }}" <id> #查看容器的PID
$ docker inspect <id> | grep Pid  #过滤出PID信息

$ docker port <id> #查看容器的端口分配
$ docker logs <id> #查看容器的log信息

$ docker diff <id> #查看容器中文件的改变

$ docker exec <id|容器名> env #在容器中执行env命令
$ docker exec <id|容器名> ls #在容器中执行ls命令
$ docker exec -it <id|容器名> bash
                    #执行bash相当于:进入容器
                    #This will create a new Bash session in the container

$ docker network disconnect bridge <容器>
                    # 从默认网络bridge上摘下容器
$ docker network connect --ip 172.1.0.20 mynet  <容器>
                    # 将容器接到自定义网络mynet上

# 更新容器的重启政策
$ docker update --restart always <id>

# 更新已创建容器的内存限制
$ docker update -m 7G <id>

$ nsenter -i -m -u -n -p -t <PID> #通过pid进入容器
# 使用别名方便进入
$ alias denter='nsenter -i -m -u -n -p -t'
  $ denter <PID>

$ systemctl disable docker    # boot时不启动
$ systemctl enable docker    # boot时启动

运行 mssql 限制内存使用

$ docker run -e 'ACCEPT_EULA=Y' -p 1433:1433 -v /data/mssql_data:/var/opt/mssql \
-d --restart always -m 7g mcr.microsoft.com/mssql/server
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容