一、普通命令
1、docker images
2、docker search
3、sudo systemctl restart docker 重启docker
4、docker info 查看docker信息
5、docker ps 查看正在运行的容器
6、https://hub.docker.com/_/nginx docker镜像库
7、 docker run -p 127.0.0.1:80:8080/tcp ubuntu bash 绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上
8、docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
docker run -it nginx:latest /bin/bash 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令
9、docker run -p 87:80 -v /data:/data -d nginx:latest 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data
10、docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]
docker exec -i -t 容器名 /bin/bash 在运行中的容器内启动新进程
11、docker run 与docker start的区别
docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。
而docker start的作用是,重新启动已存在的镜像。也就是说,如果使用这个命令,我们必须事先知道这个容器的ID,或者这个容器的名字,我们可以使用docker ps找到这个容器的信息。
12、docker as -as 查看所有已经存在的容器,并且列出其大小
13、docker build -f ./mydocker/DockerFile -t myubuntu:1.1 . 根据Dockerfile生成docker容器
14、描述:通过alpine构建其他的镜像报错,报临时文件不可用,但是,通过浏览器是直接可以下载到tar包的。
错误:
解决:
docker build -t tomcat:9.0.31-jdk8u202-alpine-hr . --network=host //后面加一个 --network=host 这个就可以了
二、DockerFile文件命令
详细介绍DockerFile命令 url: https://www.cnblogs.com/panwenbin-logs/p/8007348.html
1、FROM 指定基础镜像,必须为第一个命令
Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。一个声明以#
字符开头则被视为注释。可以在Docker文件中使用RUN
,CMD
,FROM
,EXPOSE
,ENV
等指令。
在这里列出了一些常用的指令。
格式:
FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>
示例:
FROM mysql:5.6
注:
tag或digest是可选的,如果不使用这两个值时,会使用latest版本的基础镜像
2、VOLUME:用于指定持久化目录
格式:
VOLUME ["/path/to/dir"]
示例:
VOLUME ["/data"]
VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"
注:
一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统,并具有以下功能:
1) 卷可以容器间共享和重用
2) 容器并不一定要和其它容器共享卷
3) 修改卷后会立即生效
4) 对卷的修改不会对镜像产生影响
5) 卷会一直存在,直到没有任何容器在使用它