//加载镜像
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
docker常用命令
于 2020-03-27 15:26:42 首次发布