Docker使用总结
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)
1.启动 停止docker服务
systemctl start docker #启动docker服务 systemctl status docker #查看docker的运行状态 systemctl stop docker #停止docker服务
2.帮助命令
docker --help #获取帮助 docker command --help #获取对应的命令帮助
3.镜像列表
docker images #列出本地所有镜像 #REPOSITORY:表示镜像的仓库源 #TAG:镜像的标签 #IMAGE ID:镜像ID #CREATED:镜像创建时间 #SIZE:镜像大小
4.搜索镜像(https://hub.docker.com/)
docker search mysql #搜索mysql镜像 docker search mysql -s 30 #获取stars大于30的mysql镜像 #NAME: 镜像仓库源的名称 #DESCRIPTION: 镜像的描述 #OFFICIAL: 是否 docker 官方发布 #stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。 #AUTOMATED: 自动构建。
5.获取镜像
docker pull mysql #获取l最新的mysql docker pull mysql:5.7 #获取版本为5.7的mysql
6.执行镜像
docker run -it mysql:5.7 /bin/bash
docker run -it -d -p 80:8080 -v /root/www/www:/usr/local/nginx nginx #将容器的8080端口映射到本地的80端口,同时将本地的/root/www/www目录挂载到容器的/usr/local/nginx
#--name:定义容器的名称
#-i: 交互式操作。
#-t: 终端。
#-d:后台执行
#-p 宿主机IP:容器IP :端口映射
#-P :随机指定宿主机的端口进行映射
#-v:挂载宿主目录到容器目录
#-e:设置环境变量
#/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
docerk start 容器ID #重启容器
docker stop 容器ID #停止容器
docker restart 容器ID #重启容器
在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
# docker attach 容器ID
# docker exec 容器ID :推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
7.删除镜像
docker rmi -f mysql #强制删除mysql镜像
8.设置镜像标签
docker tag 791b6e40940c docker.io/mysql:8.0
9.查看容器
docker ps #查看正在运行的容器 # -l :查询最后一次创建的容器 # -a :查看全部的容器(包括已经停止的) # -n 5 :查看最后5个运行的容器
10.修改和创建镜像
docker commit -m="has update" -a="HT" e218edb10161 HT/mysql:5.7 #-m : 提交的描述信息 #-a : 指定镜像作者 #e218edb10161 :容器 ID #HT/mysql:5.7 :指定要创建的目标镜像名
11.设置docker能访问宿主的服务
firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --reload