Docker命令
一.docker的镜像管理
1)docker search 镜像名 :搜索镜像
优先选择官方的镜像,其次选择点赞数高的
Docker hub上镜像仓库: hub.docker.com,通过这个网站可以找到想要的docker镜像,有助于开发的进行
2)
1》docker pull(push):从将向仓库拉下镜像
例如:docker pull busybox 这个是指拉下最新的镜像
docker pull busybox:1.29 拉下busybox的1.29版本的镜像
docker image +tab键可以查看与docker镜像有关的命令
build / history /omport / inspect / load / ls / prune /
pull / push / rm / save / tag 这些全是可以加在 docker image后面的命令
2》docker image ls 查看所有的docker镜像
3》导出镜像busybox:1.29 到一个压缩包中
docker image save -o docker_busybox1.29.tar.gz busybox:1.29
4》删除docker镜像
docker image rm busybox:1.29 镜像后面一定要接上镜像的版本号,否则默认最新版
5》将镜像压缩包导入
docker image load -i docker_busybox1.29.tar.gz
二、Docker容器管理
1)docker镜像的运行
docker run -d -p 80:80 nginx:latest
run (创建并运行一个容器)
-d 放在后台
-p 端口映射
-v 原地址(宿主机):目标地址(容器)
注:当容器已经运行了,则执行上面的命令就会报错;而执行命令
systemctl restart docker重启docker;然后再执行run命令 即可
2)docker进入类似于虚拟机的情况
docker run -it --name centos6 centos:6.9 /bin/bash
ps -ef 查看进程
which centos6 查看centos6在那个文件夹中
ifconfig 可以查看容器中的ip地址
此时可以将容器当成虚拟机玩儿
3) 命令
运行容器:docker run image_name
docker run === docker create + docker start
启动容器: docker start
停止容器: docker stop CONTAINER_ID 退出这个容器进程
杀死容器: docker kill container_name 比较快捷的停掉容器
默认查看处于运行状态的容器:docker container ls -a ==长格式显示
默认查看处于运行状态的容器:docker container ls -a -q ===短格式显示
默认查看处于运行状态的容器:docker container ls -a -l ===查看最后一个容器
表示将死掉的容器重新启动起来:docker cintainer centos6
删除容器:docker rm +{名字或者id号} == 将这个删除掉
批量删除:docker container rm `docker ps -a -q`
强制删除:docker container rm -f `docker ps -a -q` (-f即force)
4)
通过docker run -it imagename 进入容器中,它会有一个ID号
另起一个终端,输入命令:docker container attach ID号,这样两个终端可以
进入同一个容器中,所以在一个终端上进行操作,在另一个终端也会有体现,此时通过
ps -ef可以查看两个终端实质上是一个终端,所以画面可以同步
而如果是命令 docker container exec -it ID号 /bin/bash, 此时两个终端打开同一个容器,
但是终端不是同一个终端
推荐使用exec,不使用attach;ctrl + p,然后ctrl + q;这样可以使使用attach的时候,不会同时退出
总结:docker容器内的第一个进城(初始命令)必须一直处于运行的状态(必须夯住),否则这个容器,就会处于退出状态
docker run -d 镜像 ===>这个命令不能一直夯住,执行完进程就死掉了
docker run -d -it 镜像 ===>这个命令启动一个交互式终端,可以一直执行
docker ps -a -l --no-trunc ===>查看启动镜像的完整信息
alpine linux因为轻量级,所以很多docker基于alpine linux
docker run -d -it centos6.9 命令:如果不加命令的话,会执行默认命令;
如果加上命令就执行命令
比如:docker -d -it centos6.9 : 查看会发现默认执行 /bin/bash命令
docker -d -it centos6.9 sleep 10: 查看之后会发现执行sleep 10命令
三、容器网络访问
1)网络连接
docker容器中,其只与宿主机相连,所以在宿主机通过ifconfig可以查到docker
容器的ip地址,通过宿主机可以ping通docker容器的地址
2)容器网络模式
容器的网络模式与虚拟机一致,为net模式