Docker常用操作命令总结。
登录
docker login -u username
创建容器
docker run -itd -p <host_port:contain_port> --name mycentos --restart=always centos:centos6 /bin/bash
# /bin/bash是自启脚本,可替换成 /etc/rc.d/rc.local,但该文件最后要加上 /bin/bash
# --restart=always 表示随系统自启
# -p 是端口映射,可使用多个 -p 参数
# --network=hadoop 指定网络桥
空间占用
docker system df
网络
查看网络
docker network ls
创建桥接网络
docker network create --driver=bridge hadoop
docker network inspect hadoop
挂载目录
docker run -it -v /test:/soft centos /bin/bash
# -v的参数,冒号前面是主机的目录,后面是容器的目录,都要使用绝对路径。可使用多个-v参数
挂载宿主机已存在目录后,在容器内对其进行操作,报“Permission denied”。可通过两种方式解决:
关闭selinux
setenforce 0 # 暂时关闭
# 永久关闭的方法:修改/etc/sysconfig/selinux文件,将SELINUX的值设置 为disabled
以特权方式启动容器:指定–privileged参数
# docker run -it --privileged -v /test:/soft centos /bin/bash
容器相关操作
docker ps -a
docker ps -l
docker start/stop/rm <containerid>
# 查看容器端口
docker port yourcontainer
# 查看容器详细信息
docker inspect yourcontainer
docker attach <containerid> # 临时的,exit时会stop容器
#将正在运行的容器持久化成镜像
docker commit <containerid> <yourimageimagename>
#导出容器
docker export <CONTAINER ID> > /tmp/export.tar
#导入容器
cat /tmp/export.tar | docker import - export:latest
# 查看容器日志
docker logs -f <containerid>
容器中执行命令
用法
docker exec -i [-t -d] <containerid> command
#简单用法,进入容器并交互
docker exec -it <containerid> /bin/bash
#高级用法,不交互,执行命令
docker exec -d <containerid> /bin/bash myshell.sh
-d
表示分离模式,可用于执行一次性任务,比如定时任务。
镜像相关操作
docker images
docker search <keywords>
docker pull <image>
#导出镜像
docer save <imagename> > /tmp/image.tar
docker rm <imagename>
#导入镜像
docker load < /tmp/save.tar
#使用Dockfile构建镜像
docker build -t <yourimage> -f <Dockfile_path>
#删除临时镜像
docker rmi $(docker images --filter dangling=true -q)
#给镜像加标签
docker tag <yourimage> <namespace>/<iamgename>:<version>
# 上传镜像
docker push <namespace>/<iamgename>