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 startDocker常用命令&操作
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
