1. 镜像相关
1.1 查看镜像
docker images
1.2 搜索镜像
docker search [镜像名称]
docker search mysql
1.3 拉取镜像
docker pull [镜像名称]:[镜像标签]
docker pull xxx:xxx
1.4 删除镜像
删除镜像前需保证被引用的容器已关闭并删除
# 通过镜像ID或名称删除
docker rmi xxx
# 删除所有镜像
docker rmi `docker images -q`
2. 容器相关
2.1 查看容器
# 查看正在运行的容器
docker ps
# 查看所有容器
docker ps -a
# 查看停止的容器
docker ps -f status=exited
2.2 创建与启动容器
docker run
-i
:表示创建后马上运行容器
-t
:表示容器启动后进入其命令行(交互式)
-d
:后台运行容器(守护式)
--name
:为创建的容器命名
-v
:表示目录映射
-p
:表示端口映射
- 交互式创建容器
docker run -it --name=[容器名] [镜像名称]:[镜像标签] /bin/bash
docker run -it --name=myCentOS centos:7 /bin/bash
/bin/bash
用于指定启动后运行的命令集。
此时已进入容器,可通过输入exit
退出。
在退出后通过docker ps
无法查到容器(docker ps -a
可以查到),说明退出后容器即停止运行,这种方式为交互式创建。
- 守护式创建容器
docker run -di --name=[容器名] [镜像名称]:[镜像标签]
docker run -di --name=myCentOS2 centos:7
因为不是马上交互,所以无需指定/bin/bash
。
此时容器已经创建启动(通过docker ps
查看),通过如下命名进入容器
docker exec -it [容器名(或容器ID)] /bin/bash
docker exec -it myCentOS2 /bin/bash
通过输入exit
退出。
在退出后通过docker ps
可查到容器,这种方式为守护式创建。
2.3 停止与启动容器
# 停止容器
docker stop [容器名(或容器ID)]
# 启动容器
docker start [容器名(或容器ID)]
2.4 文件拷贝
将文件拷贝到容器内
docker cp [需要拷贝的文件或目录] [容器名称]:[容器目录]
将文件从容器拷贝出来
docker cp [容器名称]:[容器目录] [需要拷贝的文件或目录]
2.5 目录挂载
在创建容器的时候,将宿主机目录与容器内的目录映射,这样就可以通过修改宿主机某个目录的文件去影响(同步)容器内对应的目录文件。
以守护式为例创建容器
docker run -di --name=容器名 -v [宿主机路径] : [容器内路径] [镜像名称] : [镜像标签]
docker run -di --name=myCenOS3 -v /user/local/xxx : /user/local/xxx centos:7
2.6 查看容器的IP
# 通过以下命令查看容器各种信息
docker inspect [容器名(或容器ID)]
# 对上述命令做格式转化直接输出IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' [容器名(或容器ID)]
2.7 删除容器
删除容器前需要先关闭容器
docker rm [容器名(或容器ID)]
3. 迁移与备份
- 容器 —> 镜像
docker commit [已有容器名] [定义新镜像名]
docker commit nginx i_nginx
- 镜像 —> tar文件
docker save -o [定义tar文件名] [镜像名]
docker save <image-name> | gzip > <image-name>.tar.gz
# gzip压缩
docker save -o nginx.tar i_nginx
- tar文件 —> 镜像
docker load -i [tar文件名]
docker load -i nginx.tar
- 项目代码 —> 镜像
docker build -t [镜像名] .
docker build -t my-python-app .