整理的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 exec -it ContainerName sh
docker exec -it ContainerID sh
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/
网友评论