sofu6

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

常用命令

1.1.1 帮助命令

1.1.1.1 查看帮助

docker --help

1.1.1.2 查看某个命令的帮助

docker 命令 --help

例如:

docker run --help

1.1.2 镜像操作

1.1.2.1 查看当前所有镜像

docker images

1.1.2.2 从官网下载镜像

docker pull 镜像名:标签

PS:在公司内网,只有使用董修岗的香港代理才能下载

1.1.2.3 删除镜像

docker rmi 镜像名:标签

例如:

docker rmi caffe/dev:2017-03-02

 

1.1.2.4 保存镜像

docker commit容器id或容器名 镜像名:标签

例如:

docker commit 675 ubuntu14.04_dev:2017-03-07

该命令可通过id以675开头的容器生成一个新的镜像,新镜像为名称为”ubuntu14.04_dev,tag为”2017-03-07

 

 

1.1.2.5 迁移镜像

导出:

sudo docker save 2e5cc1828e9d > /home/data/dusf/mxnetdocker.tar

 

导入:

进入镜像所在目录:

sudo docker load < /home/dusf/ mxnetdocker.tar

 

1.1.3 容器操作

1.1.3.1 从镜像创建容器

  docker run 参数  镜像名:标签 运行命令

常用参数

u --net="host"  将网络设置为主机模式,可以通过公司代理上网

u -d 后台运行

u -it 将容器绑定到当前tty上,即可以在当前终端上直接操作容器

u -p 端口映射

u --name 为新建的容器指定名称

例如

docker run  --name=”fr_server” -d -p 12999:80  -p12998:22  ubuntu12/fr_deepid_server /bin/sh -C "/home/run.sh"

从镜像” ubuntu12/fr_deepid_server”启动一个容器,并将该容器命名为” fr_server”,将容器内部的1299912998分别映射为物理机的8022端口.启动该容器后,立即在容器内部运行命令”/bin/bash”,该命令的参数为-C “/home/run.sh”.既运行脚本/home/run.sh

PS:

1) 一般我做的镜像都会创建一个/home/run.sh脚本,启动容器需运行的服务器都可以通过该脚本运行,一般启动的服务器有apache2,mysqlssh

2) 若指定了--net=”host”参数,则无法映射端口,两者是冲突的

3) 若要在容器内部上外网,则必须以--net=”host”模式启动容器

4) 若需系统支持cuda的容器,则必须使用nvidia-docker命令来启动。其它参数与docker一致。

例如:

nvidia-docker run  -d -p 9998:22  -p 9999:80 cuda:2017-01-18 /bin/sh -C /home/run.sh"

 

1.1.3.2 启动时mount目录

docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash

 

nvidia-docker run -d --name="ldz_AddZip" -p 20999:80 -p 20998:22 -p 20997:3306 -v /mnt/ldz:/mnt 0e0113e39836 /bin/bash -C "/home/run.sh"

 

sudo nvidia-docker run -d --name="dusf_test1n" -p 49999:80 -p 49998:22 -v /home/data/dusf/face_data:/mnt 39bda6450eb3 /bin/bash -C "/home/run.sh"

 

1.1.3.3 查看当前所有容器

docker ps –a

1.1.3.4 运行容器

docker start 容器id或容器名

一般先使用docker ps -a命令查看容器id或容器名,然后再使用docker rm命令来删除容器。

使用容器id时,不需输入完整的id,只需输入开头几个字母即可。

1.1.3.5 停止运行容器

docker stop容器id或容器名

在删除容器前,需要先停止运行容器。

1.1.3.6 删除容器

docker rm 容器id或容器名

1.1.3.7 在容器内部运行命令

docker exec 参数 容器id或容器名 运行命令

常用参数

u -d 后台运行

u -it 将容器绑定到当前tty上,即可以在当前终端上直接操作容器

例如

docker exec -it 675 /bin/bash

该命令可以直接进入到容器内部进行操作,想结束操作,可以直接输入命令exit

常用功能的实现方式

2.1 实现在容器内部上网

首先需为docker配置代理,在物理机上进行如下操作

修改/etc/default/docker文件,添加以下内容

export http_proxy="http://proxynj.zte.com.cn:80/"

export https_proxy="http://proxynj.zte.com.cn:80/"

重新启动docker服务,执行命令

service docker restart

然后host模式,启动容器 例如:

docker run -t -i --net="host" ubuntu:12.04 /bin/bash

然后在容器内部,输入以下命令,配置代理

export http_proxy="http://proxynj.zte.com.cn:80"

export https_proxy="http://proxynj.zte.com.cn:80"

 

对于一个已经在运行且配置了端口映射的容器A,建议按照以下步骤进行操作

通过docker commit命令,通过容器A生产一个新的镜像A

net=host模式,从镜像A生成一个新容器B

在容器B内配置网络代理,进行需要联网的操作,比如安装新软件

联网操作完成后,将容器B生成新的镜像B

从镜像B中生成一个新的容器C,并指定端口映射。

posted on 2018-10-08 17:10  sofu6  阅读(115)  评论(0)    收藏  举报