docker学习笔记

docker操作

  • 我们可以使用 docker images 来列出本地主机上的镜像。
  • docker run -it [imagename] /bin/bash (-i 交互式操作 -t 终端)

  • 主机和容器之间拷贝文件
    docker cp foo.txt mycontainer:/foo.txt
    docker cp mycontainer:/foo.txt foo.txt

sudo docker cp 071ccac5310e:/tensorflow/models/research/slim/transfer_learn

  • 退出docker
    容器内shell:exit

  • 创建新的image
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

docker commit -m "sc images" -a "sc"  a8a86ef8085f sc_tpu:v1 
  • 删除image
    docker rmi [imagename]

  • 保存image
    docker image save [imagename] -o [outtputname],比如docker image save bionic_ros2:v0  -o bionic_ros2.tar

  • 容器内的磁盘路径映射到主机磁盘路径
    docker run -it -v [本机路径]:[容器内路径] [imagename]
    比如:sudo docker run -it -v /home/sc/work_codes/git/tpu/ws:/home/sc ros2_nv:new

创建挂载点的几种方式:https://blog.csdn.net/zhuchunyan_aijia/article/details/80094644

  • 进入一个容器
    sudo docker exec -it [容器id] /bin/bash

  • 杀掉一个容器
    docker kill -s KILL [容器id或name]
    sudo docker kill -s KILL bca754c9a6b7

docker把镜像及容器文件都存储在哪里?

/var/lib/docker
docker学习笔记_第1张图片

参考:https://blog.csdn.net/weixin_39800144/article/details/79019503
docker学习笔记_第2张图片

privileged参数作用

大约在0.6版,privileged被引入docker。
使用该参数,container内的root拥有真正的root权限。
否则,container内的root只是外部的一个普通用户权限。
privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。
甚至允许你在docker容器中启动docker容器

privileged参数

container name "/tpu" is already in use

docker: Error response from daemon: Conflict. The container name "/tpu" is already in use by container "d9af0c6899a9aaa0445ab98a43abde5e29a313414565443ef9dadc55587c932a". You have to remove (or rename) that container to be able to reuse that name

容器退出不代表容器销毁了

docker rename d9af0c6899a9 tpu_test 把相应冲突的容器rename 或者删掉,则可以解决name冲突的问题.

新手容易搞错的概念

容器退出和容器销毁不是一个概念
docker run其实应该叫docker create,会创建一个新的container. container内exit后,这个container其实还在,只是是处于stop的状态. 包括你在container内新建的文件什么的都在!, docker ps -a可以看到所有的container,docker ps默认是只显示还在running状态的container. docker start -ai container_id可以启动一个stop的container.

每一个docker命令的具体用法可以加--help查看,比如docker ps --help
docker学习笔记_第3张图片

你可能感兴趣的:(docker学习笔记)