Docker学习笔记

1. Docker基本组成

  • 镜像(image):模板。通过这个模板创建容器服务。通过一个镜像可以创建多个容器,最终项目运行在容器中。
  • 容器(container):利用容器技术,独立运行一个或者一组应用,通过镜像来创建。
  • 仓库(repository):存放镜像。分为共有仓库和私有仓库。默认是国外的,需要配置镜像加速。

2.阿里云镜像加速

3.帮助命令

docker version 		# 显示docker版本信息
docker info 		# 显示docker系统信息,包括镜像和容器的数量
docker 命令 --help 	# 帮助命令

帮助文档:reference中command-lines中查找命令:https://docs.docker.com/engine/reference

4.镜像命令

  • docker images 查看所有本地主机上的镜像
    在这里插入图片描述
REPOSITORY  	# 镜像的仓库源
TAG 			# 镜像的标签
IMAGE ID 		# 镜像的id
CREATE			# 镜像的创建时间
SIZE			# 镜像的大小

# 可选项
Options:
  -a, --all        # 列出所有镜像
  -q, --quiet      # 只显示镜像的id
  
docker images -aq  # 联合使用,显示所有的镜像
  • docker search 搜索镜像
# 可选项
--filter=STARS=3000  # 搜索出来的是STARS大于3000的镜像eg:docker search mysql --filter=STARS=3000
  • docker pull 下载镜像
docker pull 镜像名[:tag]  		# eg:docker pull mysql:5.7

[root@host-10-121-1-56 ~]		# docker pull mysql
Using default tag: latest  		# 若不写tag,默认下载latest最新版本镜像
latest: Pulling from library/mysql
e1acddbe380c: Pull complete  	# 分层下载,docker images的核心(可以共用,节省内存)
bed879327370: Pull complete 
03285f80bafd: Pull complete 
ccc17412a00a: Pull complete 
1f556ecc09d1: Pull complete 
adc5528e468d: Pull complete 
1afc286d5d53: Pull complete 
6c724a59adff: Pull complete 
0f2345f8b0a3: Pull complete 
c8461a25b23b: Pull complete 
3adb49279bed: Pull complete 
77f22cd6c363: Pull complete 
Digest: sha256:d45561a65aba6edac77be36e0a53f0c1fba67b951cb728348522b671ad63f926  # 签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest  # 真实地址
docker pull mysql == docker pull docker.io/library/mysql:latest
  • docker rmi:删除镜像
docker rmi -f 镜像id							# 删除指定镜像
docker rmi -f 镜像id 镜像id 镜像id 镜像id		# 删除多个镜像
docker rmi -f $(docker images -aq)   		# 删除所有镜像

5.容器命令
有了镜像才可以创建容器!

  • 新建容器并启动
docker run [可选参数] image

# 参数说明
--name="NAME"   # 给容器命名,用区分容器
-d				# 后台方式运行,必须要有一个前台进程,若无前台应用,就会自动停止
-it				# 使用交互方式运行,进入容器查看内容
-p				# 指定容器的端口   -p 8080:8080
	-p 	ip:主机端口:容器端口
	-p  主机端口:容器端口 (√常用)
	-p	容器端口
	容器端口
-P				# 随机指定端口
启动并进入容器
[root@host-10-121-1-56 ~]# docker run -it centos /bin/bash      进入容器
[root@e616af68ddc4 /]# ls     容器内的centos,基础版本,很多命令都是不完善的
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@e616af68ddc4 /]# exit    从容器中退回主机
exit
[root@host-10-121-1-56 ~]# 
  • 列出所有运行的容器
docker ps			# 查看正在运行的容器
docker ps -a		# 查看曾经运行过的容器
docker ps -n=# 显示最近n个运行过的容器
docker ps -aq		# 只显示曾经运行过的容器的id
  • 退出容器
exit 		# 容器停止并退出
ctrl+P+Q	# 容器不停止并退出
  • 删除容器
docker rm 容器id   					# 删除指定容器,不能删除正在运行的容器
docker rm -f 容器id					# 不论容器是否正在运行,强制删除(f=force)
docker rm $(docker ps -aq)			# 删除所有容器
docker ps -a -q|xargs docker rm  	# 删除所有容器
  • 启动和停止容器的操作
docker start 容器id		# 启动容器
docker restart 容器id		# 重启容器
docker stop 容器id		# 停止当前正在运行的容器
docker kill 容器id		# 强制停止当前运行的容器

6.常用的其它命令

  • 查看日志命令
-tf				# 显示日志
--tail number   # 要显示的日志条数
docker logs -tf --tail number 容器id		
  • 查看容器中的进程信息
top 容器id
  • 查看镜像元数据
docker inspect 容器id
  • 进入当前正在运行的容器
docker exec -it 容器id bin/bash		#进入容器后开启新的终端,可以在里面操作(√常用)
docker attach 容器id bin/bash		#进入容器正在执行的终端,不会启动新的进程
  • 从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 主机路径

7.提交镜像

docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[tag]

8.容器数据卷
数据需要持久化和同步操作,且容器间也可数据共享,所以不可以将数据放在容器中。
数据卷技术:Docker容器中产生的数据,同步到本地。
目录的挂载:将容器内的目录,挂载到Linux上。

  • 使用数据卷
# 方式一:直接使用命令来挂载 -v
docker run -it -v 主机目录:容器内目录 容器id /bin/bash
# 启动起来之后可以通过docker inspect 容器id  查看“Mounts”挂载信息

  • 具名挂载和匿名挂载
# 匿名挂载
-v 容器内路径
docker run -d -P --name ngnix01 -v /etc/ngnix ngnix

# 查看所有的volume(-v的v)情况
docker volume ls

# 具名挂载(√常用)
-v 卷名:容器内路径
docker run -d -P --name ngnix01 -v juming-nginx:/etc/ngnix ngnix
juming-nginx前面不加/,加了/表示绝对路径,在方式一中使用

9.Dockefile
docker镜像的构建文件,是一段命令脚本~

# Dockerfile文件,名字为Dockerfile1
# 文件中的内容:指令(大写)、参数
FROM centos 						# 选择镜像
VOLUME ["volume01","volume02"]		# 匿名挂载,生成镜像的时候自动挂载的数据卷目录
CMD echo "------end-------"
CMD /bin/bash

# 构建
docker build -f Dockerfile1 -t gali/centos .

在这里插入图片描述
在这里插入图片描述
10.数据卷容器
数据卷的生命周期一直持续到没有容器使用为止。
但是一旦持久化到了本地,本地的数据是不会删除的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值