Docker是时下比较流行开源的应用容器引擎,作为一个开发者做一个简单的入门了解,有助于对系统运作的理解。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
相关名词解释:
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker客户端(Client):连接docker主机进行操作;
docker仓库(Registry):用来保存各种打包好的软件镜像;
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
Docker安装:
docker可以安装在Windows或Linux系统上,本文笔者安装了虚拟机使用Linux系统进行操作(大部分公司运维系统也是使用Linux,所以掌握Linux操作还是有意义的)。
1、检查内核版本,必须是3.10及以上
[root@localhost ~]# uname -r
2、升级内核
[root@localhost ~]# yum update
3、安装docker
[root@localhost ~]# yum install docker
输入y确认安装
4、启动docker
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker ‐v
Docker version 1.12.6, build 3e8e77d/1.12.6
5、开机启动docker
[root@localhost ~]# systemctl enable docker
6、停止docker
[root@localhost ~]# systemctl stop docker
备注:刚刚安装的docker启动时可能会遇到问题,笔者在此记录遇到的问题及解决办法,仅供参考:
[root@localhost ~]# systemctl start docker
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
[root@localhost ~]# systemctl status docker.service
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
[root@localhost ~]## 说明没有docker这个用户组,需要自己创建用户组,使用以下命令
[root@localhost ~]# sudo groupadd docker
[root@localhost ~]# sudo usermod -aG docker $(whoami)
[root@localhost ~]## 先退出一下再重新登录来保证有了正确的权限
[root@localhost ~]# sudo service docker start
Docker常用命令&操作
1、搜索镜像
[root@localhost ~]# docker search tomcat
2、拉取镜像 不选版本默认最新
[root@localhost ~]# docker pull tomcat:8.5
3、镜像列表
[root@localhost ~]# docker images
4、删除镜像
[root@localhost ~]# docker rmi image-id
5、根据镜像启动容器
[root@localhost ~]# docker run --name mytomcat ‐d tomcat:8.5
6、查看运行中的容器
[root@localhost ~]# docker ps
7、 停止运行中的容器
[root@localhost ~]# docker stop 容器的id
8、查看所有的容器
[root@localhost ~]# docker ps ‐a
9、启动容器
[root@localhost ~]# docker start 容器id
10、删除一个容器
[root@localhost ~]# docker rm 容器id
11、启动一个做了端口映射的tomcat
[root@localhost ~]# docker run ‐d ‐p 8888:8080 tomcat
‐d:后台运行
‐p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口
12、为了演示简单关闭了linux的防火墙,否则需要设置相关的防火墙权限
[root@localhost ~]# service firewalld status ;查看防火墙状态
[root@localhost ~]# service firewalld stop:关闭防火墙
13、查看容器的日志
[root@localhost ~]# docker logs container‐name/container‐id
更多命令参看
https://docs.docker.com/engine/reference/commandline/docker/
可以参考每一个镜像的文档
https://hub.docker.com/r/library/
###使用镜像加速拉取mysql镜像
[root@localhost ~]# docker pull registry.docker-cn.com/library/mysql
###mysql docker安装命令
[root@localhost ~]# docker run --name open-mysql -e MYSQL_ROOT_PASSWORD=1111 -p 3310:3306 -d mysql:5.7.22 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
###拉取带版本号的镜像
[root@localhost ~]# docker pull registry.docker-cn.com/library/rabbitmq:3-management
###rabbitmq安装 应用暴露端口,客户端连接端口
[root@localhost ~]# docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq d69a5113ceae
###redis安装
[root@localhost ~]# docker run -d -p 6379:6379 --name myredis registry.docker-cn.com/library/redis
推荐阅读一篇网上的博客:https://www.cnblogs.com/myzony/p/9071210.html