linuxdocker基础命令
TheStoneFishdocker基础命令
一、安装docker
1、更新源
2、安装docker
二、使用docker拉取镜像和运行镜像
1、拉取镜像
搜索所需要安装的镜像
拉取镜像(此处是获取的排名第一的镜像)
查看拉取到本地的nginx镜像
2、运行镜像
即使没有拉取镜像, 这里也会自动拉取
1
| docker run -d --name nginx -p 80:80 nginx:latest
|
- -d 表示在后台运行
- –name nginx 参数指定容器的名称为 nginx
- -p 80:80 参数将主机的 80 端口映射到容器的 80 端口
- nginx:latest 运行的镜像
3、查看正在运行的镜像的信息
4、查看所有镜像包括没有在运行的信息
这样就可以在本机的80端口访问docker的80端口
三、进入docker容器内部操作
1
| docker exec -it <container-name> /bin/bash
|
- exec 命令代表附着到运行着的容器内部
- -it -i 表示要使用交互式终端进行交互,即保持输入流打开,-t 表示要为新终端窗口分配一个伪终端(PTY)
- <container-name> 为容器的名称或 ID,使用docker ps 查看
- /bin/bash 指定了执行命令的shell
四、其他命令
1、复制主机文件或目录到docker
1
| docker cp <file-or-folder> <container-name>:<path>
|
- <file-or-folder> 主机的文件或目录
- <container-name> 为容器的名称或 ID
- <path> 是容器内部的目标路径
2、复制docker内的文件或目录到主机
1
| docker cp <container-name>:<path> <file-or-folder>
|
- <container-name> 为容器的名称或 ID
- <path> 是容器内部的目标路径
- <file-or-folder> 主机的文件或目录
3、关闭容器和启动容器
关闭
1
| docker stop <container-name>
|
- <container-name> 为容器的名称或 ID
开启
1
| docker start <container-name>
|
- <container-name> 为容器的名称或 ID
4、删除容器(需要先关闭容器),但不会删除容器的数据卷和镜像,如果加上参数-v会删除与之关联的数据卷
1
| docker rm <container-name>
|
- <container-name> 为容器的名称或 ID
5、运行一个新的容器,将主机上的目录挂载到容器内部
1 2
| docker run -d --name <container-name> -v <host-path>:<container-path> -p 80:80 <image-id>
|
- <container-name> 为容器的名称或 ID
- <host-path> 是主机上要挂载的目录或文件的路径
- <container-path> 是容器内部的挂载点,容器可以通过该路径访问主机上的文件
- <image-id> 为要运行的镜像 ID
请确定挂载点和被挂载点路径存在,并且被挂载点拥有权限
这样就可以通过<container-path>
查看的数据了用于主机和容器之间的数据共享是非常有效的
6、运行一个新的容器,将一个数据卷挂载到容器内部
数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UnionFS,可以提供很多有用的特性:
- 数据卷 可以在容器之间共享和重用
- 对 数据卷 的修改会立马生效
- 对 数据卷 的更新,不会影响镜像
- 数据卷 默认会一直存在,即使容器被删除
创建一个数据卷
1
| docker volume create <volume-name>
|
查看数据卷
创建一个容器
1
| docker run -d --name <container-name> -v <volume-name>:<container-path> -p 80:80 <image-id>
|
- <container-name> 为容器的名称或 ID
- <volume-name> 为数据卷的名称
- <container-path> 是容器内部的挂载点,容器可以通过该路径访问主机上的文件
- <image-id> 为要运行的镜像 ID