镜像的使用
举个列子,我想要部署nginx,之前都是自己下载安装,部署,配置。
学习了Docker之后,一切都变得简单
查看仓库有那些nginx版本(OFFICIAL是docker hub 官方版本)
docker search nginx
下载第一个官方的版本(不指定版本号,默认都是最新版latest)
docker pull docker.io/nginx
我下过了就是这样
第一次下载,就是这样(这里下载的是mysql)
查看一下镜像有没有下好
docker images
创建一个以nginx为镜像的容器(我用的镜像id
创建容器的,你也可以使用镜像的全部名称
创建容器)
-d 后台运行
-p 端口映射,第一个80:主机端口;第二个80:容器端口
docker run -d -p 80:80 5a3221f0137b
查看镜像运行情况(2分钟前)
docker ps
访问本地url
curl localhost:80
网页测试
Docker命令
简单的介绍几个比较常用的命令以及他们之间的差异,具体参数请自行查阅,或者输入--help
命令查看
info/version
info:显示Docker 系统信息,包括镜像和容器数
verion:显示docker版本信息,有Client和Server
docker info
docker version
镜像仓库
login:登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
logout :你懂的?
pull:从镜像仓库中拉取或者更新指定镜像
push:将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
search:从Docker Hub查找镜像
docker login -u 用户名 -p 密码
docker logout
docker pull java
docker push myJava:v1
docker search java
本地镜像管理
images:列出本地镜像
rmi:删除本地一个或多少镜像(不是容器哦)
tag:标记本地镜像,将其归入某一仓库
build:用于使用 Dockerfile 创建镜像
history:查看指定镜像的创建历史
save:指定镜像保存成 tar 归档文件
load:导入使用 docker save 命令导出的镜像
import:从归档文件中创建镜像
export:导入使用 docker import命令归档的镜像
save 和 load 不可与 import 和 export 混用
docker images
docker rmi java
docker build -t java:v1 . (<-我是点,表示当前目录下的Dockerfile文件)
docker history java
docker save java:load>/root/java.tar
docker load<java.tar
docker export 98ca36> java.tar
docker import - java:import
容器生命周期管理
run:创建一个新的容器并运行一个命令
start/stop/restart:启动/停止/重启一个容器
kill:结束一个运行中的容器
rm:删除一个或多少容器
pause/unpause:暂停/恢复容器中所有的进程
create:创建一个新的容器但不启动它 (语法同run)
exec:在运行的容器中执行命令
docker run -d -p 8080:80 --name mynginx nginx:latest
docker start/stop/restart mynginx
docker kill -s KILL mynginx
docker pause/unpause mynginx
docker create -d -p 8080:80 --name mynginx nginx:latest
docker exec -it mynginx bash
容器操作
ps:列出容器
inspect:获取容器/镜像的元数据
top:查看容器中运行的进程信息,支持 ps 命令参数
attach:连接到正在运行中的容器(链接断开,容器自动关闭,没有exec好用)
events:从服务器获取实时事件
logs:获取容器的日志
wait:阻塞运行直到容器停止,然后打印出它的退出代码
export:将文件系统作为一个tar归档文件导出到STDOUT
port:列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口
docker ps
docker inspect mysql:5.6
docker top mymysql
docker attach --sig-proxy=false mynginx
docker events -f "image"="mysql:5.6"
docker logs -f mynginx
docker wait mynginx
docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2
docker port mymysql
容器rootfs命令
commit:从容器创建一个新的镜像
cp:用于容器与主机之间的数据拷贝
diff:检查容器里文件结构的更改
docker commit -m "my mysql" a2a4r4c174a2 mymysql:v1
docker cp e:\mysql.sql a2a4r4c174a2:/root
docker diff mymysql
??????????????
?如果,各位读者发现什么错误,请指正?
?如果,遇见什么问题,也可以与我联系?
??????????????