Docker基本操作

整理的Docker常用操作有点乱,先留这自己用后面在更新

A,更新源
我当前是root用户,所以不用加sudo。
1)打开配置文件

gedit /etc/docker/daemon.json

2)修改配置文件
这里用的是网易的镜像,你也可以用阿里的、豆瓣的,还有一些学校的,像中科大、清华什么的,只要把那个网址改掉就好了。改完之后把文件保存好。

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
$ docker ps // 查看所有正在运行容器
$ docker stop containerId // containerId 是容器的ID

$ docker ps -a // 查看所有容器
$ docker ps -a -q // 查看所有容器ID

$ docker stop $(docker ps -a -q) //  stop停止所有容器
$ docker  rm $(docker ps -a -q) //   remove删除所有容器
$ docker  rmi $(docker ps -a -q) //   删除镜像

安装镜像:

docker pull centos

启动镜像,或者叫通过镜像创建容器

docker run -ti 7583 /bin/bash
docker run -P -it ubuntu /bin/bash

可以查看存在的容器

docker ps -a 

停止容器

docker stop id

启动容器

docker start id

然后我们使用docker ps查看到该容器信息,接下来就使用docker attach进入该容器

$ sudo docker attach 44fc0f0582d9  

exit后不会退出

docker exec -it ContainerName /bin/bash

DOCKER 给运行中的容器添加映射端口
a, 获取容器ip

    docker inspect $container_name | grep IPAddress

b. 添加转发规则

    iptables -t nat -A DOCKER -p tcp --dport $host_port -j DNAT --to-destination $docker_ip:$dock
#将容器commit成为一个镜像
docker commit containerA  newImageB
#运行容器
docker run  -p 8080:8080 -p 8081:8081 -v /home/data/:/home/data/ -dt newImageB

在容器外部执行容器内部的sh脚本

1626a76918ae 容器id

docker exec -i 1626a76918ae  bash /home/start.sh

将镜像存储

docker save nginx:latest > /root/docker-images/nginx.tar

导入镜像文件

docker load --input /root/docker-images/nginx.tar

通过符号的方式来导入

docker load < /root/docker-images/nginx.tar

文件拷贝

将主机./RS-MapReduce目录拷贝到容器30026605dcfe的/home/cloudera目录下。

docker cp RS-MapReduce 30026605dcfe:/home/cloudera

将容器30026605dcfe的/home/cloudera/RS-MapReduce目录拷贝到主机的/tmp目录中。

docker cp  30026605dcfe:/home/cloudera/RS-MapReduce /tmp/

推荐阅读更多精彩内容