Docker学习
Docker学习
安装
使用包管理器安装
1 | sudo pacman -Syyu docker |
安装完后记得把电脑重启一下,然后启动docker
服务
1 | sudo systemctl restart docker |
命令解读
1 | docker run -d \ |
docker run -d
: 创建并运行一个容器,-d
为后台运行--name mysql
: 给容器起名,必须唯一-p 3306:3306
: 端口映射- 容器有独立的网络空间,宿主机无法直接连接到容器,可以将容器的端口映射到宿主机的端口,外部就可以通过宿主机的这个端口转发到容器的端口,从而实现连接
- 宿主机端口:容器端口
-e
: 设置一些容器的环境变量mysql
: 指定运行的镜像的名字,根据这个名字下载对应的镜像- 镜像名称一般为两部分:
[repository]:[tag]
- repository: 镜像名
- tag: 镜像的版本
- 未指定tag时,默认为
latest
,代表最新版本镜像
- 镜像名称一般为两部分:
所有docker命令都可以通过
--help
参数查看说明,比如
docker run --help
常见命令
- 查看本地镜像
1
docker images
- 删除本地镜像
1
docker rmi
- 构建镜像
1
docker build
- 保存镜像文件
1
docker save
- 加载镜像文件
1
docker load
- 从仓库拉取镜像
1
docker pull
- 创建并运行镜像:每次运行都会创建一个新的容器并运行
1
docker run
- 停止容器:将容器停止,但是容器还在,下次不用重复创建
1
docker stop
- 启动容器:将存在的容器启动
1
docker start
- 查看容器进程
1
docker ps
- 查看所有容器,包括已经停止的
1
docker ps -a
- 查看所有容器,包括已经停止的
- 进入容器内部:使用bash进入mysql容器(或者直接进入mysql的root用户)
1
2docker exec -it mysql bash
docker exec -it mysql mysql -u root -p
数据卷
**数据卷(vulume)**是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁
数据卷在宿主机对对应的目录在/var/lib/docker/volumes
数据卷对宿主机和容器的文件是双向绑定的,对其中一个修改,对应的另一个也会修改
在创建容器的同时完成数据卷的挂载:
1 | docker run -d ... -v 数据卷名称:容器内目录 |
- 查看数据卷
1
docker volume ls
- 查看某个数据卷的详细信息
1
docker volume inspect [volume name]
docker inspect Blog
输出信息:
1 | "Mounts": [ |
挂载信息:
- 种类
- 挂载卷名字
- 宿主机目录
- 容器目录