# docker **Repository Path**: hjwei305/docker ## Basic Information - **Project Name**: docker - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-16 - **Last Updated**: 2023-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # docker #### Docker架构 ![](./picture/1.png) Docker 镜像(Images):Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。 Docker 容器(Container):容器是独立运行的一个或一组应用,是镜像运行时的实体。 Docker 客户端(Client):Docker 客户端通过命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 与 Docker 的守护进程通信。 Docker 主机(Host):一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。 Docker Registry:Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。 Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。 一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。 通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。 Docker Machine:Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql ### 指令说明 -i: 允许你对容器内的标准输入 (STDIN) 进行交互。 -t: 在新容器内指定一个伪终端或终端。 -d:指定容器的运行模式。 -P:将容器内部使用的网络端口随机映射到我们使用的主机上。 docker login -u hjwei:登录 docker port <容器 ID> ### 容器操作: docker ps -a:查看所有的容器。 docker rm :删除容器。 docker start :启动容器。 docker stop :停掉容器。 docker run -dp 3000:3000 :启动更改后的容器。 docker container prune:清理掉所有处于终止状态的容器。 ### 镜像操纵: docker run -dp 3000:3000 --name fuck :启动镜像。 docker build -t .:创建镜像,更新代码后也可用。 docker images :来列出本地主机上的镜像。 docker rmi :删除一个镜像 ### 打包镜像 #### 1、进入工程目录下,创建dockerFile touch Dockerfile #### 2、打包镜像 docker build -t getting-started . #### 3、启动镜像 docker run -dp 3000:3000 getting-started #### 4、更新了代码重新打包 #### 创建一个自己的docker镜像 docker build -t text . docker build -t getting-started . #### 5、给镜像一个名称新的名称 docker tag getting-started hjwei/getting-started docker tag text hjwei/text #### 6、上传镜像到远程仓库 docker push hjwei/text docker push hjwei/getting-started #### 7、拉取镜像 docker pull hjwei/getting-started docker pull hjwei/text ### 各中间件说明 ### ubuntu的使用 #### 启动ubuntu docker run -itd --name ubuntu-test ubuntu #### 进入系统 sudo docker attach 44fc0f0582d9 #### 退出容器终端,致容器的停止。 exit ### Rocketmq-控制台 docker pull styletang/rocketmq-console-ng docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=10.16.115.239:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng #### redis-控制台 docker run -itd --name redis-test -p 6379:6379 redis ### Dockerfile 就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层 ![](./picture/2.png)