Docker 是一个开源的应用容器引擎,是一个轻量级容器技术。Docker 支持将软件编译成一个镜像,然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。运行中的这个镜像称为容器,容器启动是非常快速的。
Docker 镜像(Images) 用于创建 Docker 容器的模版。
Docker 容器(Container) 镜像启动后的实例称为一个容器,是独立运行的一个或一组应用。
Docker 客户端(Client) 通过命令行或者其他工具使用 Docker API 与 Docker 的守护进程通信。
Docker 主机(Host) 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
Docker 仓库(Registry) 用来保存镜像,可以理解为代码仓库。
从概念上来看 Docker 和我们传统的虚拟机比较类似,只是更加轻量级,更加方便使,Docker 和虚拟机最主要的区别有以下几点:
Docker Engine 是一个 C/S 架构的应用程序,主要包含下面几个组件:
Docker 使用 C/S (客户端/服务器)体系的架构,Docker 客户端与 Docker 守护进程通信,Docker 守护进程负责构建,运行和分发 Docker 容器。Docker 客户端和守护进程可以在同一个系统上运行,也可以将 Docker 客户端连接到远程 Docker 守护进程。Docker 客户端和守护进程使用 REST API 通过UNIX套接字或网络接口进行通信。
docker search keywords
去 docker hub 上检索镜像的详细信息docker pull image-name:tag
tag 是可选的,tag 表示标签,多为软件的版本,默认是 latestdocker images
查看所有本地镜docker rmi image-id
删除指定的本地镜像运行 docker run -it -p host-port:container-port --name container-name -d image-name /bin/bash
-it 需要一个交互式终端,-p host-port:container-port 主机端口映射到容器内部的端口,--name container-name 自定义容器名,-d 后台运行, image-name 指定镜像模板
列表 docker ps -a
查看所有运行的容器
停止 docker stop container-name/container-id
停止当前运行的容器
启动 docker start container-name/container-id
启动以停止的容器
删除 docker rm container-id
删除指定容器
日志 docker logs container-name/container-id
查看容器日志
安装容器 docker pull mysql:5.7.32
运行容器并且建立目录映射 docker run -it -p 3306:3306 --name mysql -v /usr/local/docker/mysql/conf:/etc/mysql -v /usr/local/docker/mysql/logs:/var/log/mysql -v /usr/local/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.32
容器外壳访问 docker exec -it mysqlP /bin/bash
mysql -uroot -p123456
进入 docker 本地客户端设置远程访问账号 grant all privileges on *.* to root@'%' identified by "123456";
flush privileges;
使用远程连接 Mysql 应该访问:
host: 127.0.0.1 localhost
port: 3306
user: root
password: 123456
解决以 MacOS 作为宿主机,Docker 内已经成功启动 Tomcat,但是宿主机浏览器却不能访问 localhost 的问题。
原因就在于,在 docker 容器内 tomcat 目录下真正存放在 webapps 目录下的文件却存放于 webapps.dist中。
创建 Tomcat 容器,端口映射为8888:
docker run -it --name romcatP -p 8888:8080 -d tomcat /bin/bash
进入 tomcat 容器中:
docker exec -it tomcatP /bin/bash
分别查看 webapps 文件夹和 webapps.dist 文件夹,发现 webapps目录下无文件:
cd webapps
ls
cd ../webapps.dist
ls
解决问题:
cd ..
ls -l
mv webapps webapp2
mv webapps.dist/ webapps
cd bin
./startup.sh
手机扫一扫
移动阅读更方便
你可能感兴趣的文章