Docker常用操作

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>

Leave a Comment

豫ICP备19001387号-1