docker常用命令

//加载镜像
docker load -i 镜像.tar
//查看镜像
docker images 
//运行镜像
docker run -d -t --name 名称 名称:tag
//查看运行的容器
docker ps 
//停止 运行的容器
docker stop 容器id

//停止 运行的容器
docker start 容器id

//重新运行的容器
 docker restart

//导入容器
docker export 容器id > 文件名.tar

将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
cat docker/ubuntu.tar | docker import - test/ubuntu:v1

1、从容器拷贝文件到宿主机
docker cp mycontainer:/opt/testnew/file.txt /opt/test/
2、从宿主机拷贝文件到容器
docker cp application-docker.properties b9574f8ca65d:/app/config
docker cp  application.properties b9574f8ca65d:/app/config
docker cp  application-test.properties b9574f8ca65d:/app/config
-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停

docker commit -a "xiaoyi" -m "增加docker配置文件" b9574f8ca65d  file-server:1.0.1
docker run -d -p 9900:9900  -it --name file-server101 file-server:1.0.1 bash
docker run -it -p 9901:9900 file-server:1.0.1 bash


//查看已经运行的容器
docker ps  -a 
//删除容器
docker rm 容器id
docker rm -f  容器id

//删除镜像
docker rmi -f 镜像id
//连接到运行的容器上
docker exec -it 容器名称 /bin/bash
//ssh默认的端口为22,我们将docker中centos的22端口映射到宿主机的5000端口
例如:docker run -d -p 5022:22 --name centos --privileged=true centos:latest /usr/sbin/init
//我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:
//-t: 在新容器内指定一个伪终端或终端。 
// -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
//-d  在后台运行
docker run -i -t ubuntu:15.10 /bin/bash
如果看到加载的镜像没有tag和镜像名,则手动打tag

//指定绑定端口运行 -P是随机端口 -p是执行端口 注意大小写
docker run -d -p 5000:5000 --name xiaoyi xiaoyi:0.0.1 (注意:这里访问的时候应该访问物理机的ip和映射的端口)

docker tag {image_id} {image_name}:{image_tag}

查看日志
docker logs 容器id

//搜索镜像
docker search centos
//载入一个镜像
docker pull centos

关闭启动docker服务
Net stop com.docker.service
Net start com.docker.service


docker文件的创建使用
FROM  指定基于镜像
RUN   执行的指令
	两种格式
	shell 格式:RUN <命令行命令>
	exec 格式: RUN ["可执行文件", "参数1", "参数2"]

下面是一个例子  (以&& 符号连接命令,这样执行后,只会创建 1 层镜像。)
	FROM centos
	RUN yum install wget
	RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
	RUN tar -xvf redis.tar.gz
	以上执行会创建 3 层镜像。可简化为以下格式:
	FROM centos
	RUN yum install wget \
	    && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
	    && tar -xvf redis.tar.gz


构建镜像
	docker build -t nginx:test .
COPY 从上下文目录中复制文件或者目录到容器里指定路径
	COPY [--chown=<user>:<group>] <源路径1>...  <目标路径>
	COPY [--chown=<user>:<group>] ["<源路径1>",...  "<目标路径>"]
CMD  类似于 RUN 指令,用于运行程序,但二者运行的时间点不同:
	CMD 在docker run 时运行。
	RUN 是在 docker build。
	如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。

ENTRYPOINT
	类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序。

	但是, 如果运行 docker run 时使用了 --entrypoint 选项,此选项的参数可当作要运行的程序覆盖 ENTRYPOINT 指令指定的程序。

	优点:在执行 docker run 的时候可以指定 ENTRYPOINT 运行所需的参数。

	注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效。

	格式:ENTRYPOINT ["<executeable>","<param1>","<param2>",...]
WORKDIR 指定工作目录
USER 用于指定执行后续命令的用户和用户组,这边只是切换后续命令执行的用户(用户和用户组必须提前已经存在)
	USER <用户名>[:<用户组>]



//批量停止容器
docker ps | awk '{if (NR>1){print $1}}'|xargs docker stop
//批量删除容器
docker ps -a | awk '{if (NR>1){print $1}}'|xargs docker rm
//批量启动已经停止的容器
docker ps -a | awk '{if(NR>1){print $1}}'|xargs docker start 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值