文章目录
一、docker的三个重要概念
1、重要概念
docker有三个特别重要的概念:**镜像、容器和仓库。**它们之间的关系如下,可知镜像是容器的模板
registry_name: 注册名
respository_name: 仓库名
image_name:镜像名
tag_name:镜像标签
2、登录docker hub
linux端登录docker hub:
#命令
docker login docker.io
#随后输入dockerhub账号密码即可
3、查看docker登录信息
登录后的账号信息将会存放在 /root/.docker/config.json 文件中
二、镜像的基本操作
1、搜索镜像
对进行进行搜索,这个操作也可在docker hub上进行
这里以搜索alipine镜像为例:
docker search alipine
2、下载镜像
对镜像进行下载,docker pull 镜像名:版本,不带版本默认下载最新(latest)版本
拉取镜像:
例如:拉取narandramannam,中1.0版本的alipine-k8s为例
docker pull narendramannam/alipine-k8s:1.0
当对版本(tag)不进行指代时,默认拉取最新版(latesst)
当最新版和指定版Image ID 一样时,则两者是同一镜像
3、查看本地镜像
docker images
4、给镜像打tag
命令格式:docker tag imageID registry_name/仓库名/镜像名:tag
例如:给alipine-k8s打标签
docker tag ae10b3d7e187 docker.io/jike1998/alipine-k8s:latest
jike1998是博主dockerhub的注册名
5、推送镜像
将镜像推送到自己的仓库:
命令格式:docker push docker.io/个人dockerhub注册名/镜像名:镜像tag
socker push docker.io/jike1998/alipine-k8s:latest
6、删除镜像
docker rmi docker.io/jike1998/alipine3:latest
当镜像正在被使用的会导致无法删除
此时可以通 -f 强制删除
docker rmi -f imageid
7、导出/导入镜像
导出镜像
docker dave imageID > 镜像文件.tar
导入镜像:
docker load < 镜像文件
导入之后的镜像文件没有repository和tag,需要自己打标签
三、容器的基本操作
1、列出本地容器
列出所有容器,去掉 -a 仅显示存活的容器
docker ps -a
name可能是它自动生成的
2、启动容器
2.1 交互式启动容器
docker run -it jike/alipine-k8s:latesst /bin/sh
打开另一个终端,容器已经开始运行了
2.2 非交互式启动容器
docker run jike1998/alipine-k8s:latest
加上 --rm 就不会显示了,–rm就是运行结束之后删除容器
2.3 非交互式启动一个后台容器:
docker run -d -name myalipine 仓库名/镜像名:镜像tag
由于没有指定命令,所以会立刻死亡
3、查看宿主机进程
得到刚才容器在宿主机上的进程
ps aux | grep sleep | grep -v grep
4、进入容器
docker exec -it 容器名 /bin/sh
5、停止容器
docker stop 容器id
6、启动容器
docker start 容器id
重启容器:
docker restart 容器id
7、删除容器
docker rm 容器名
强制删除容器:
docker rm -f 容器名
8、提交容器
我们在容器中的操作,当容器死之后便会消失,想要将它固化在镜像中,就需要提交容器
docker commit -p 容器名 镜像标签
#例如
docker commit -p myalipine2 jike1998/alipine3:latest_with_txt
新生成的镜像会将固化的内容放在可读层,可读层不是说仅仅可读,我们依旧可以进行一些修改,但是这个操作是把文件从可读层拉到读写层来进行的
9、查看容器日志
docker logs 容器id
docker run hello-world 2>&1 >> /dev/null
/dev/null 不在设备上进行输出,将输出的东西放在了日志上: