1、命令:
docker info #查看服务器上docker详细信息
docker search #搜索镜像
docker image pull nginx:1.14-alpine #下载一个镜像
docker image ls #查看镜像
docker rmi -f image id #删除镜像 -f:强制删除
docker rm 容器名 #删除容器
docker run --name b1 -it busybox:latest #启动一个容器 -it:交互运行 b1:名字
docker run --name web1 -d nginx:1.14-alpine # -d:后台运行
docker run --name kvstor1 -d redis:4-alpine #当没有镜像时,可以直接启动,它会自己去下载镜像并启动
docker inspect web1 #查看容器的详细信息(ip...)
docker ps -a #查看所有的容器
docker ps #查看容器
docker container ls #查看容器
docker network ls #查看网络
docker start -i -a b1 #启动一个停止的容器 -i -a:交互
docker exec -it kvstor1 /bin/sh #在某个容器中交互执行shell
docker logs web1 #查看容器的日志
docker kill 容器名 #kill
docker save -o myimage.gz mageedu/httpd #打包压缩一个镜像
docker load -i myimage.gz #从压缩包里加载一个镜像
docker pull quay.io/coreos/flannel:v0.10.0-arm64 #去quay.io上拉镜像,flannel:v0.10.0-arm64:镜像名和标签
docker run --name t1 -it --rm busybox:latest #--rm:当容器退出时自动删除它
docker rmi -f $(docker images -q) #强制删除所有jingxiang
docker save -o myimages.gz $(docker images -q) #打包所有镜像进-->myimages.gz
2、镜像的基础
镜像的生成途径:
dockerfle
基于容器制作
docker hub
(1)
基于容器做镜像(commit):
docker run --name b1 -it busybox:latest #容器要处于启动状态
docker commit -p b1 #将名字为b1的容器创建成镜像,但是没有仓库名和标签 -p: 提交期间暂停容器
docker tag 1108683e19f5 mageedu/httpd:v0.1-1 #将image id为1108683e19f5的镜像打上仓库名和标签,mageedu:命名空间 httpd:仓库名
基于b1重做一个镜像,更改启动命令:
docker commit -a "wym" -c 'CMD ["/bin/httpd","-f","-h","/data/html"]' -p b1 mageedu/httpd:v0.2 #-a:作者 -c:指定命令 -f:前台运行 -h:指定网页文件
(2)
推镜像到docker hub:
在docker hub网站上建立仓库maggedu/htppd;
docker login -u 用户名 #登录
docker push maggedu/htppd #推maggedu/htppd仓库里的所有镜像到docker hub
将阿里云的镜像加速器地址,填写到docker的配置文件中:
在阿里云的“容器与镜像服务器”中都会提供加速地址;
{
"registry-mirrors": ["https://fxxxxx15.mirror.aliyuncs.com","https://registry.docker-cn.com"]
}
推镜像到阿里云:
在阿里云网站上建立仓库maggedu/htppd;
docker login -u 用户名 服务器地址 #服务器地址是区域地址,创建完仓库阿里云会有提示
docker push maggedu/htppd
(3)
镜像导入导出:
docker save -o myimages.gz mageedu/httpd:v0.1-1 mageedu/httpd:v0.2 #打包v0.1-1和v0.2两个镜像,-o:输出到哪里 myimages.gz:包名
docker load -i myimages.gz #在其他docker服务器上从myimages.gz包中导入镜像