Docker 学习笔记
核心概念
- Docker 主机(Host):安装了Docker程序的机器(Windows,Linux,MacOS)
- Docker 客户端(Client):连接Docker主机进行操作,客户端通过命令或者其他工具使用Docker
- Docker 仓库(Registry):用来存放Docker镜像的仓库,同代码控制中的代码仓库一个概念
- Docker 镜像(Images):软件打包好的镜像,放在Docker仓库中,创建Docker容器用到的模板,https://hob.docker.com 提供了庞大的镜像集合供使用
- Docker 容器 (Container):镜像启动后的的实例,独立运行的一个或者一组应用。
使用Docker 的步骤
- 安装Docker
- 去Docker仓库找到软件对应的镜像
- 使用功能Docker 运行这个镜像,这个镜像就会生成对应的Docker容器
- 对容器的启动停止
安装Docker(Linux)
- 创建并登录Linux 虚拟机
通过 uname -r 检查内核版本,必须是3.10及以上
- 安装Docker
通过命令 yum install docker
中间按y 确认安装 …
- 启动Docker
通过 systemctl start docker 启动
通过 docker -v 查看Docker 版本 - 停止Docker
[root@MiWiFi-R4-srv ~]# systemctl stop docker - 开机启动Docker
[root@MiWiFi-R4-srv ~]# systemctl enable docker - 设置镜像加速器
[root@MiWiFi-R4-srv docker]# vi /etc/docker/daemon.json
加速地址可以登录阿里云查看https://dev.aliyun.com/
[root@MiWiFi-R4-srv docker]# systemctl daemon-reload
[root@MiWiFi-R4-srv docker]# systemctl restart docker
[root@MiWiFi-R4-srv docker]#
设置完了以后重新加载,重启下docker - 使用Docker 查找镜像
docker search mysql 查找mysql 镜像
- 抓取镜像
docker pull mysql
- 下载完了以后通过 docker images 查看镜像列表
- 删除镜像
docker rmi 镜像ID
- 添加docker权限给当前用户,使docker命令免sudo
添加docker group
sudo groupadd docker
将当前用户添加到docker组:
sudo gpasswd -a ${USER} docker
重启docker服务:
sudo service docker restart
切换当前会话到新 group 或者重启 X 会话
newgrp docker
或者
pkill X
Docker容器操作
-
搜索拉取镜像
docker search tomcat
docker pull tomcat -
根据镜像启动容器
docker run --name container-name -d image-name:标签名(对应镜像列表中的TAG,标签名可以加可以不加)
例如:docker run -name myredis -d redis
–name: 自定义容器名
-d : 后台运行
image-name:指定镜像模板
启动以后可以通过docker ps 查看运行中的docker 容器 -
停止容器
docker stop 容器ID
[root@MiWiFi-R4-srv docker]# docker stop 25a32d292701
25a32d292701 -
查看所有容器(启动的未启动的)
[root@MiWiFi-R4-srv docker]# docker ps -a
-
通过ID 启动容器
-
删除容器
docker rm 容器ID 这里注意区分 docker rmi 镜像ID 删除镜像(rmi = remove image)
-
启动容器并且把容器对应的端口映射出来
–name 自定义别名
-d 表示后台运行
-p 端口A:端口B 端口A为本机端口 端口B为 docker 容器端口
这里我们就可以通过访问虚拟机的端口 去访问docker 容器
不做端口映射的话外部是没法访问到容器对应的端口的。
注意:如果虚拟机开了防火墙的话可能会导致无法访问
查看防火墙状态
[root@MiWiFi-R4-srv docker]# service firewalld status
开启防火墙
[root@MiWiFi-R4-srv docker]# service firewalld start
关闭防火墙
[root@MiWiFi-R4-srv docker]# service firewalld stop -
查看容器日志
docker logs 容器名称或者容器ID
更多操作命令查看https://docs.docker.com/engine/reference/commandline/docker/