您的位置:首页 > 运维架构 > Docker

docker 常用命令

2016-09-01 17:19 239 查看

docker 常用命令

1.新建容器

docker run +IMAGE_ID  +cmd
  运行一个image,即开启一个container,且输入命令cmd

在run 命令后面可以加上一些参数,常用的有:
-t : 让Docker分配一个伪终端并绑定到容器的标准输入上

 -i : 则让容器的标准输入保持打开

-v 宿主和容器的文件夹映射,如 :-v /home/zhangsan:/home/lisi    (将宿主的“/user/zhangsan ”文件夹 映射 到 "/user/lisi",之后两       个文件夹的文件会保持同步更改)

-p 宿主和容器的端口映射,如:如 :-p 8080:8181    (将宿主的“8080”端口 映射 到 容器的 “8181” 端口)

-d 以守护进程形式运行 (加上-d之后,后台运行)

完整命令案例:

1)交互形式
     docker run -p 8080:8080 -p 4848:4848 -v /home/zhangsan/:/home/zhangsan/ -ti IMAGE_ID /bin/bash   

2)守护进程
     docker run -d -p 8080:8080 -p 4848:4848 -v /home/zhangsan/:/home/zhangsan/ IMAGE_ID sh.sh

常见错误

     docker run -p 8080:8080 -p 4848:4848 -v /home/zhangsan/:/home/zhangsan/ -ti IMAGE_ID /bin/bash   

Error response from daemon: Cannot start container 8b9fd93229ea37428dffae7e031fc061b9cb59d687227f2a3b34ed5b5cbf7162: failed to create endpoint admiring_ardinghelli on network bridge: Bind for 0.0.0.0:8080 failed: port is already allocated

有其他容器正在运行,并且占用了8080 端口

解决办法

docker ps -a 查看所有容器,找到相应容器

docker stop CONTAINER_ID

2.容器相关:

docker ps 查看正在运行容器
docker ps -a 查看所有容器,包括stop的
docker exec -ti container_id +cmd   进入一个正在运行的容器
docker stop container_name  停止一个容器
docker start container_name   开启一个容器
docker rm container_name 删除一个容器

3.镜像相关:

docker images 查看所有镜像
docker rmi image_id 删除一个镜像
docker rmi $(docker images -q)   删除所有镜像

4.保存与导出:

我们run了一个image,在其中做了改动,若我们退出容器,不做保存,下次在run同一个image时,改动都不存在了。
所以一定要记得保存

1)docker commit   将container保存成image

docker commit -m "commit message" -a  "author" container_id image_name:version        
container_id为你要commit的container的id,即做了修改的那个container ;作者/名字:tag 三者共同组成一个image

保存到本地:

docker save  image_id> /home/zhangsan/test_v1.tar

或:docker save -o /home/zhangsan/test_v1.tar
image_id

从本地加载:

docker load < /home/zhangsan/test_v1.tar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ubuntu docker