0%

docker常用命令

运行

启动

systemctl start docker

停止

systemctl stop docker

重启

systemctl restart docker

状态

systemctl status docker

开机自启

systemctl enable docker

关闭开机自启

systemctl disable docker


镜像

查看镜像

查看当前拥有的镜像

docker images

REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期)
SIZE:镜像大小

搜索镜像

docker search 镜像名称

可以从网络中查找需要的镜像,可以通过以下命令搜索

NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由 Docker Hub自动构建流程创建的

拉取镜像

docker pull 镜像名称 默认拉取最新版本

docker pull 镜像名称:版本拉取指定版本

从中央仓库中下载镜像到本地

删除镜像

docker rmi 镜像名称/ID


容器

查看正在运行的容器

docker ps

查看所有容器

docker ps -a

查看最后一次运行的容器

docker ps -l

创建容器

docker run 参数

-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
–name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用 多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到 容器上。
-d:在 run 后面加上-d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自 动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多 个端口映射

交互式创建

docker run -it --name=容器名称 镜像名称:标签 /bin/bash

退出当前容器 exit

不关闭容器方式退出交互式容器 ctrl+p+q

守护式创建

docker run -di --name=容器名称 镜像名称:标签

登录守护容器方式

docker exec -it 容器名称/ID /bin/bash

进入容器

docker exec进入容器

docker attach此方式进入容器,在退出容器终端后会导致容器终止,不建议使用

停止容器

docker stop 容器名称/ID

启动容器

docker start 容器名称/ID

文件拷贝

拷贝文件到容器中

docker cp 需要拷贝的文件或目录 容器名称:容器目录

从容器拷贝文件出来

docker cp 容器名称:容器目录 存放路径

目录挂载

在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通 过修改宿主机某个目录的文件从而去影响容器。创建容器 添加-v 参数 后边为 宿主机目录: 容器目录

docker run -di -v 宿主机目录:容器目录 --name=容器名称

删除容器

docker rm 容器名称/ID

查看日志

dokcer logs 容器名称/ID


Dockerfile

Dockerfile 是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新 的镜像。

命令 作用
FROM image_name:tag 义了使用哪个基础镜像启动构建流程
MAINTAINER user_name 声明镜像的创建者
ENV key value 设置环境变量 (可以写多条)
RUN command 是 Dockerfile 的核心部分(可以写多条)
ADD source_dir/file dest_dir/file 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
COPY source_dir/file dest_dir/file 和 ADD 相似,但是如果有压缩文件并不能解压
WORKDIR path_dir 设置工作目录
EXPOSE 开发容器端口
VOLUME 挂载卷
USER 运行的用户

创建镜像

创建目录

mkdir –p /root/dockerdata/dockerjdk8

上传jdk-8u181-linux-x64.tar.gz到该目录下

创建Dockerfile文件vim Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER YRL
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#将相对路径的jdk加到容器中
ADD jdk-8u181-linux-x64.tar.gz /usr/local/java/

#配置java环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_181
ENV JRE_HOME $JAVA_HOME/jre
ENV PATH $JAVA_HOME/bin:$PATH

构建镜像

docker build -t='jdk1.8' . 需注意后面的空格和点,不要省略

查看镜像

docker images