Docker基础命令
Docker 镜像命令
查看镜像
docker images #显示镜像
-a #显示所有
-q #只显示ID
搜索命令
docker search [镜像名] #搜索该镜像
#可选项,通过stars过滤
--filter=stars=XXX #搜索出的镜像stars大于XXX
下载镜像
docker pull [镜像名] #不加tag,默认下载最新版
docker pull mysql:5.7 #下载5.7版本的mysql镜像
删除镜像
docker rmi #删除镜像
-f #全部山粗
docker rmi -f [id] #通过id来删除镜像
docker rmi -f $(docker images -aq) #删除所有镜像
Docker容器命令
新建容器并启动
docker run [可选参数] [镜像名]
#参数说明
--name="Name" 指定容器名,用来区分容器
-d 后台启动容器
-it 使用交互方式,进入容器访问查看内容
-p 指定容器的端口
-p 8080:8080 主机端口:容器端口 常用
-P 大写P,随机指定端口
列出所有运行的容器
docker ps #列出正在运行的容器
#可选参数化
-a 列出当前在运行的容器并带出历史运行的容器
-n=[X] 列出最近创建的容器,x为个数,从上到下为新到旧
-q 只显示容器的编号
退出容器
容器内
exit # 直接停止容器并退出
Ctrl + P + Q #不停止容器退出
删除容器
docker rm [容器id] #删除容器
-f #全部删除
docker rm -f $(docker ps -aq) #删除所有容器
docker ps -aq | xargs docker rm #删除所有容器
启动停止容器
docker start [容器id]
docker restart [容器id]
docker stop [容器id]
docker kill [容器id]
其他常用命令
后台启动容器
docker run -d [imagesName] #后台启动镜像
#坑:dockers后台启动该容器,必须有前台进程,docker发现没有前台进程会自动停止该容器
##对外服务应用则不会,centos这类会发现此问题
查看日志
docker logs -tf --tail [显示日志的条数] [容器id]
--tial string形式输出日志
查看容器内进程信息
docker top [容器id]
查看容器详细信息
docker inspect [容器id]
###查看详细信息后可以得知docker ps显示的容器id为全id的前几位缩写
进入容器
#方法一
docker exec -it [容器id] #进入容器后打开一个新的终端
#方法二
docker attach [容器id] #进入正在执行的容器,不会打开新的终端
##该方法只能进入当前正在运行的容器
从容器内拷贝文件到主机上
docker cp [容器id]:[/路径/文件] [主机路径] #一般不会用命令从主机拷贝到容器,通常使用挂载
##停止运行的容器也可以拷贝,因为容器还在,数据就会还在
##拷贝是个手动的过程,未来可以使用-v技术来实现自动同步[数据卷技术]
##联通主机和容器目录 容器/home 主机/home 文件同步
小结

心得:基本命令学完了,感觉还是容易会忘,还是经常得敲。docker命令跟linux命令几乎一模一样,学了docker命令后顺便把linux基本命令复习了一遍,大学毕业之后不常用几乎也快忘完了,这次学习还是收获颇丰。本次学习的命令都是最常用最基础的命令,之后还有更深层次的等待着学习。
镜像部分
可视化
- portainer(首先学习使用)
- Rancher(CI/CD再学习)
什么是portainer #docker图形化界面工具
docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
本机访问localhost:8088进入可视化管理界面
ps:一般很少会用,测试体验一下就行
Commit
docker commit #提交容器成为一个新的副本
#类似git命令
docker commit -m="文本描述" -a="作者" 容器id 镜像名:[TAG(版本)]
实战测试
#启动tomcat镜像生成容器,映射主机端口为8080
#复制webapps.dist目录下文件至webapps中,使其能够访问默认页面
#执行 PS C:\Windows\system32> docker commit -m="add webapps app" -a="AsSu" 62cf1257e0b3 tomcat:1.0.1
#docker images查看生成的镜像
#通过commit把操作/配置好的容器,生成一个新的镜像,之后就使用这个新的镜像

=======================================================================================
进阶
容器数据卷
什么是数据卷
数据保存在容器中,是不科学的,因为一旦删除容器,携带的数据随着一起被删除
所以我们必须要将数据持久化
容器之间可以有一个数据共享的技术,容器中产生的数据,同步保存在本地中
数据卷技术,将容器内的目录,挂载到Linux/本地上 ##容器之间也是可以相互共享的
使用数据卷
PS C:\> docker run -it -v /d/linux/test:/test --name="centos" centos:7 /bin/bash
#-v /d/linux/test:/test 将centos根目录下的test文件夹同步到windows的d盘中的linux/test文件夹中
##踩的坑##
因为学习的教程使用的是linux系统,所以在windows下操作的时候没有指定d盘,所以前几次尝试都失败了
对dockerfile的初步印象
dockerfile就是用来构建镜像的脚本文件
#创建一个dockerfile文件
#文件中的脚本内容
From centos
VOLUME ["volume01","volume02"]
cmd echo "------end------"
cmd /bin/bash
dockerfile今后会使用十分之多,因为我们通常要自己构造镜像
如果构造镜像时没有挂载卷,要使用-v手动进行挂载
数据卷容器
--volume-from
#通过此命令实现荣期间的数据共享
结论:
容器之间可以用此方法进行配置信息的同步(集群配置同步)
数据卷容器的生命周期一直到没有容器使用为止
DockerFile
构建镜像的脚本文件
构建步骤
- 编写一个dockerfile文件
- docker build 构建成为镜像
- docker run 运行该镜像
- docker push 发布镜像(dockerhub,aliyun)分为私有跟共有
DockerFile的指令
FROM # 基础镜像
MAINTAINER # 姓名+邮箱 作者信息
RUN # 构建镜像时要运行的命令
ADD # 添加内容
WORKDIR # 镜像的工作目录
VOLUME # 挂载的目录
EXPOSE # 暴露端口
CMD # 指定这个容器启动时要运行的命令,只有最后一个会生效,且可以他被替代
ENTRYPOINT # 指定这个容器启动时要运行的命令,可以追加命令
ENV # 构建时配置的环境变量
实战测试
创建一个自己配置的centos
#1 编写dockerfile
PS C:\dockerfiles> cat .\mydockerfile
FROM centos
MAINTAINER asuu<transparent@163.com>
ENV MYPATH /user/local
WORKDIR $ENV
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "-----end-----"
CMD /bin/bash
#2 通过这个dockerfile构建镜像
docker build
Successfully built e6fafecd79f6
Successfully tagged asuu-centos:latest #执行结果
#3 docker run运行该镜像
docker history 容器id #查看该容器的构建过程
发布镜像
dockerhub
#1 登录dockerhub账号
docker login
Usage: docker login [OPTIONS] [SERVER]
Log in to a Docker registry.
If no server is specified, the default is defined by the daemon.
Options:
-p, --password string Password
--password-stdin Take the password from stdin
-u, --username string Username
docker login -u [account]
PASSWORD:
#登录成功
PS C:\Users\AsUu> docker login -u transparentz
Password:
Login Succeeded
PS C:\Users\AsUu>
学习自Bilibili BV1og4y1q7M4 ,Up遇见狂神说

浙公网安备 33010602011771号