码迷,mamicode.com
首页 > 其他好文 > 详细

docker 常用命令

时间:2018-05-15 11:51:04      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:ldb   使用   build   color   att   col   伪终端   uda   vol   

https://yeasy.gitbooks.io/docker_practice/content/image/dockerfile/expose.html docker practice 资料
-----------------------------------------------
如果使用NVIDIA的GPU,需要使用nvidia-docker来
创建及运行对应的容器
-----------------------------------------------
sudo systemctl start docker 启动docker 
sudo docker run hello-world 测试是否安装成功
docker system df 查看镜像、容器、数据卷所占用的空间
docker image ls -a
docker pull ubuntu:16.04 下载镜像
docker image ls 列出已经下载下来的镜像
docker images ps -a ,容器exited状态下,可以通过此命令查看对应的ID
docker image ls -f dangling=true  查看虚悬镜像
docker image prune 删除虚悬镜像
docker image rm 镜像ID  删除镜像
使用docker container ls 列出对应的容器,下次,直接可以使用docker attach containerID 直接进入

----------------------------------------------
从image中启动container,操作容器,进入容器:
----------------------------------------------
1,docker run -dit -P --name SannyTest --volume /home/ubuntu/github:/workspace/github ImageName
docker run -dit -P ImageName ,通过ImageName启动创建容器,-P,会自动随机映射 EXPOSE 的端口
--volume 会加载主机的绝对路径/home/ubuntu/github目录到容器的/workspace/github目录,也可以挂载对应的文件,这种数据卷独立于容器,Docker 不会在容器被删除后
自动删除,所以在删除对应的容器的时候,添加上volume参数,也删除对应的卷,不然很占用无用的空间docker volume rm containerID,但是源目录一定得是绝对路径
2,docker container ls 查看刚才开启的容器,
3,docker exec -it ContainerID bash 运行容器,推荐使用exec方式,因为如果从这个 stdin 中 exit,不会导致容器的停止
只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。
当 -i -t 参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。如果使用 -d 参数时,容器启动后会进入后台,
4,docker attach containerID 也可以进入对应的容器,但是在stdin中exit后,容器会停止,慎用,5,docker inspect SannyTest 查看容器的相关

5,临时退出一个正在交互的容器的终端,而不终止它:
按 Ctrl-p Ctrl-q 。如果按 Ctrl-c 往往会让容器内应用进程终止,进而会终止容器

--------------------------------------------
使用 Dockerfile 定制镜像:
--------------------------------------------
使用Dockerfile构建镜像:在Dockerfile所在的目录运行“docker build -t sanny:v1 ."
Dockerfile文件书写例如:
FROM nvidia/cuda:8.0-cudnn6-devel-ubuntu16.04  #继承的父容器
MAINTAINER sanny  #作者
RUN apt-get update && apt-get install -y --no-install-recommends         build-essential         cmake         git         wget         libatlas-base-dev         libboost-all-dev         libgflags-dev         libgoogle-glog-dev         libhdf5-serial-dev         libleveldb-dev         liblmdb-dev         libopencv-dev         libprotobuf-dev         libsnappy-dev         protobuf-compiler         python-dev         python-numpy         python-pip         python-setuptools         python-scipy &&     rm -rf /var/lib/apt/lists/*     && echo "root:root" | chpasswd #设置密码
EXPOSE 22 
#EXPOSE 声明端口,详见docker_practice P90
# 格式为 EXPOSE <端口1> [<端口2>...]。
#在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,
# 以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口
CMD /etc/init.d/nginx start #启动服务
WORKDIR /workspace

--------------------------------------------------
将新的container修改的东西,重新commit到对应的image
虽然新制作了对应的image,但是上一层的image没法删除
--------------------------------------------------
1,[mydocker@test ~]$ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    96621f37028c        0ef2e08ed3fa        "/bin/bash"         3 minutes ago       Up 3 minutes                            thirsty_torvalds
2,然后:docker commit 96621f37028c 0ef2e08ed3fa
3,docker ps -a 查看新的image

 

docker 常用命令

标签:ldb   使用   build   color   att   col   伪终端   uda   vol   

原文地址:https://www.cnblogs.com/hansjorn/p/9040084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!