文章目录
1. 安装Docker
uname -r
# '版本大于3.10'
yum update
curl -fsSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
2. 搜索/下载镜像
docker search redis
docker pull redis:2.8
3. 查询本地镜像
docker images
4. 启动镜像到容器
docker run -p 6379:6379 -d redis:2.8
5. 查询已启动镜像/容器
docker ps -a
6. 进入容器环境
docker exec -it NAMES bash
7. 创建镜像
- 基于已有镜像的容器创建
- 基于本地模板导入
- 基于Dockerfile创建
7.1. 基于已有镜像的容器创建
使用docker [container] commit
命令
命令格式:docker [container] commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
选项:
短格式 | 长格式 | 注释 |
---|---|---|
-a | –author string | 作者信息 (e.g., “John Hannibal Smith hannibal@a-team.com”) |
-c | –change list | 提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR 等 (default []) |
–help | Print usage | |
-m | –message string | 提交消息 |
-p | –pause | 提交时暂停容器运行 (default true) |
7.2. 基于本地模板导入
使用docker [image] import
命令
命令格式:docker [image] import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
选项:
短格式 | 长格式 | 注释 |
---|---|---|
-c | –change list | 将Dockerfile指令应用于创建的映像 (default []) |
–help | Print usage | |
-m | –message string | 设置导入镜像的提交消息 |
示例:
- 从 http://openvz.org/Download/templates/precreated 下载模板压缩包ubuntu-18.04-x86_64-minimal.tar.gz
- 使用
cat ubuntu-18.04-x86_64-minimal.tar.gz | docker import - ubuntu:18.04
命令导入新镜像
7.3. 基于Dockerfile创建
Dockerfile是个文件,利用给定的指令描述基于某个父镜像创建新镜像的过程。
使用docker [image] build
命令
命令格式:docker [image] build [OPTIONS] PATH | URL | -
选项:
短格式 | 长格式 | 注释 |
---|---|---|
–build-arg list | 设置构建时变量 (default []) | |
–cache-from stringSlice | 视为缓存源的镜像 | |
–cgroup-parent string | Optional parent cgroup for the container | |
–compress | Compress the build context using gzip | |
–cpu-period int | Limit the CPU CFS (Completely Fair Scheduler) period | |
–cpu-quota int | Limit the CPU CFS (Completely Fair Scheduler) quota | |
-c | –cpu-shares int | CPU shares (relative weight) |
–cpuset-cpus string | CPUs in which to allow execution (0-3, 0,1) | |
–cpuset-mems string | MEMs in which to allow execution (0-3, 0,1) | |
–disable-content-trust | Skip image verification (default true) | |
-f | –file string | Dockerfile的名字 (Default is ‘PATH/Dockerfile’) |
–force-rm | Always remove intermediate containers | |
–help | Print usage | |
–isolation string | Container isolation technology | |
–label list | Set metadata for an image (default []) | |
-m | –memory string | Memory limit |
–memory-swap string | Swap limit equal to memory plus swap: ‘-1’ to enable unlimited swap | |
–network string | Set the networking mode for the RUN instructions during build (default “default”) | |
–no-cache | Do not use cache when building the image | |
–pull | Always attempt to pull a newer version of the image | |
-q | –quiet | 禁止生成输出并在成功时打印镜像ID |
–rm | Remove intermediate containers after a successful build (default true) | |
–security-opt stringSlice | Security options | |
–shm-size string | Size of /dev/shm, default value is 64MB | |
-t | –tag list | 名字和可选的tag,格式为’name:tag’ (default []) |
–ulimit ulimit | Ulimit options (default []) | |
-v | –volume list | 设置构建时绑定挂载 (default []) |
8. 迁移镜像
- 导出镜像到tar包
- 复制到其他机器
- 从tar包导入镜像到本地镜像库
8.1. 导出镜像到tar包
使用docker [image] save
命令
命令格式:docker [image] save [OPTIONS] IMAGE [IMAGE...]
选项:
短格式 | 长格式 | 注释 |
---|---|---|
–help | Print usage | |
-o | –output string | 导出镜像到指定的文件中 |
示例:
docker save -o ubuntu_18.04.tar ubuntu:18.04
8.2. 从tar包导入镜像到本地镜像库
使用docker [image] load
命令
命令格式:docker [image] load [OPTIONS]
选项:
短格式 | 长格式 | 注释 |
---|---|---|
–help | Print usage | |
-i | –input string | Read from tar archive file, instead of STDIN |
-q | –quiet | Suppress the load output |
示例:
docker load -i ubuntu_18.04.tar
或者:
docker load < ubuntu_18.04.tar
9. 上传镜像
使用docker [image] push
命令
命令格式:docker [image] push [OPTIONS] NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]
选项:
短格式 | 长格式 | 注释 |
---|---|---|
–disable-content-trust | Skip image verification (default true) | |
–help | Print usage |
示例:
docker tag test:latest user/test:latest
docker push user/test:latest
10. docker命令帮助
docker --help
语法: docker COMMAND
A self-sufficient runtime for containers
可选命令:
--config string 客户端配置文件的位置 (default "/root/.docker")
-D, --debug 启动调试模式
--help 显示此回显
-H, --host list 要连接到的守护程序套接字 (default [])
-l, --log-level string 设置日志记录级别 ("debug", "info", "warn", "error", "fatal") (default "info")
--tls Use TLS; implied by --tlsverify
--tlscacert string 仅由该CA签名的信任证书 (default "/root/.docker/ca.pem")
--tlscert string TLS证书文件的路径 (default "/root/.docker/cert.pem")
--tlskey string TLS密钥文件的路径 (default "/root/.docker/key.pem")
--tlsverify 使用TLS并验证远程
-v, --version 显示版本信息并退出
管理命令:
container 管理容器
image 管理镜像
network 管理网络
node 管理集群节点
plugin 管理插件
secret Manage Docker secrets
service 管理服务
stack Manage Docker stacks
swarm Manage Swarm
system 管理Docker
volume 管理卷
命令:
attach 附加到正在运行的容器
build 从Dockerfile构建镜像
commit 根据容器的更改创建新镜像
cp 在容器和本地文件系统之间复制文件/文件夹
create 创建一个新的容器
diff 检查容器文件系统上的更改
events 从服务器获取实时事件
exec 在正在运行的容器中运行命令
export 将容器的文件系统导出为tar存档
history 显示镜像的历史记录
images 显示镜像清单
import 从tarball导入内容以创建文件系统镜像
info 显示系统范围的信息
inspect 返回有关Docker对象的低级信息
kill 杀死一个或多个正在运行的容器
load 从tar存档或STDIN加载镜像
login 登录Docker在线仓库
logout 登出Docker在线仓库
logs 提取容器的日志
pause 暂停一个或多个容器中的所有进程
port 列出端口映射或容器的特定映射
ps 显示容器清单
pull 从在线仓库拖取一个镜像或者一个库
push 向在线仓库推送一个镜像或者一个库
rename 给一个容器改名
restart 重启一个或多个容器
rm 删除一个或多个容器
rmi 删除一个或多个镜像
run 在新容器中运行命令
save 将一个或多个镜像保存到tar存档(默认情况下流式传输到STDOUT)
search 搜索Docker官方仓库中的镜像
start 启动一个或多个已停止的容器
stats 显示实时的容器资源使用情况统计流
stop 停止一个或多个运行中的容器
tag 创建引用了SOURCE_IMAGE的标签TARGET_IMAGE
top 显示容器的运行过程
unpause 取消暂停一个或多个容器中的所有进程
update 更新一个或多个容器的配置
version 显示Docker版本信息
wait 阻塞直到一个或多个容器停止,然后打印其退出代码
运行“docker COMMAND --help”以获取有关命令的更多信息。
11. 相似命令对比
docker [image] import
导入容器快照文件到本地镜像库(容器快照没有历史记录和元数据)
docker [image] load
导入镜像存储文件到本地镜像库(镜像存储文件保存了完整的记录)
docker [image] save
将镜像打包成tar文件
docker [container] export
拍摄容器快照到tar文件
docker [container] commit
从容器创建新镜像
docker [container] create
将镜像放入新容器
docker [container] start
启动没启动的容器
docker [container] run
将镜像放入新容器并启动
docker [container] update
更新容器运行中的参数