| Id |
Title |
Content |
Published |
Framework Id |
User Id |
Created |
Modified |
Actions |
| 7 |
Ubuntu24.04安装docker |
<p>1、下载地址:https://download.docker.com/linux/ubuntu/dists/noble/pool/stable/</p>
<p> </p>
<p>2、选择对应平台:</p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>amd64是x86平台</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>arm64是arm平台</span></p>
<p> </p>
<p><span style="white-space: normal;">3、</span>需要下载的软件包</p>
<p>必要下载</p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>containerd.io_1.7.27-1_amd64.deb #它是Docker引擎的核心底层组件,负责管理容器的整个生命周期</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>docker-buildx-plugin_0.25.0-1~ubuntu.24.04~noble_amd64.deb #提供buildx插件</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>docker-ce-cli_28.3.1-1~ubuntu.24.04~noble_amd64.deb #提供Docker 命令行接口</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>docker-ce_28.3.1-1~ubuntu.24.04~noble_amd64.deb #Docker社区版核心引擎包</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>docker-compose-plugin_2.38.1-1~ubuntu.24.04~noble_amd64.deb #Docker Compose组件包</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>可选下载</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>docker-ce-rootless-extras_28.3.1-1~ubuntu.24.04~noble_amd64.deb #允许非root用户启动并运行Docker的组件</span></p>
<p> </p>
<p>4、服务器自动下载(与上面步骤选一个就行)</p>
<pre class=""><code class="language-bash hljs">sudo cat > docker_wget.txt <<EOF
https://download.docker.com/linux/ubuntu/dists/noble/pool/stable/amd64/containerd.io_1.7.27-1_amd64.deb
https://download.docker.com/linux/ubuntu/dists/noble/pool/stable/amd64/docker-buildx-plugin_0.25.0-1~ubuntu.24.04~noble_amd64.deb
https://download.docker.com/linux/ubuntu/dists/noble/pool/stable/amd64/docker-ce-cli_28.3.1-1~ubuntu.24.04~noble_amd64.deb
https://download.docker.com/linux/ubuntu/dists/noble/pool/stable/amd64/docker-ce_28.3.1-1~ubuntu.24.04~noble_amd64.deb
https://download.docker.com/linux/ubuntu/dists/noble/pool/stable/amd64/docker-compose-plugin_2.38.1-1~ubuntu.24.04~noble_amd64.deb
https://download.docker.com/linux/ubuntu/dists/noble/pool/stable/amd64/docker-ce-rootless-extras_28.3.1-1~ubuntu.24.04~noble_amd64.deb
EOF
sudo wget -i docker_wget.txt</code></pre>
<p> </p>
<p>5、安装</p>
<pre class=""><code class="language-bash hljs">sudo dpkg -i ./containerd.io_* \
./docker-ce_* \
./docker-ce-cli_* \
./docker-buildx-plugin_* \
./docker-compose-plugin_* </code></pre>
<p>6、启动服务并设置开机启动</p>
<pre class=""><code class="language-bash hljs">sudo systemctl start docker
sudo systemctl enable docker</code></pre>
<p> </p>
<p>7、设置当前用户不需要sudo 使用docker命令</p>
<pre class=""><code class="language-bash hljs">#将登录用户加入docker组
sudo usermod -aG docker $USER
#更新用户组
sudo newgrp docker</code></pre>
<p> </p>
<p>8、退出当前用户,重新登录,重新连接一次终端也可以</p>
<pre class=""><code class="language-bash hljs">docker run hello-world //这个可能有代理问题,如果是阿里云的服务器可以配置阿里云的代理,如果不是用下面的临时替代测试是否成功
docker run m.daocloud.io/docker.io/library/hello-world 测试是否安装成功</code></pre>
<p> </p>
<p>9、配置镜像</p>
<pre class=""><code class="language-bash hljs">sudo vim /etc/docker/daemon.json</code></pre>
<p> </p>
<p>在文件内输入</p>
<pre class=""><code class="hljs language-json">{
"registry-mirrors": [
"https://mirrors.tuna.tsinghua.edu.cn",
"https://mirrors.sohu.com",
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://ccr.ccs.tencentyun.com",
"https://docker.m.daocloud.io",
"https://docker.awsl9527.cn",
"https://mirror.ccs.tencentyun.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}</code></pre>
<p> </p>
<p>10、重新加载并重启docker</p>
<pre class=""><code class="language-bash hljs">sudo systemctl daemon-reload
sudo systemctl restart docker</code></pre>
<p><br /><br /></p> |
1 |
37 |
1 |
1/7/26, 7:50 AM |
1/22/26, 10:46 AM |
View Edit Delete |
| 14 |
docker镜像操作 |
<p>查看本地的镜像</p>
<pre class=""><code class="hljs language-undefined">docker images</code></pre>
<p> </p>
<p>删除镜像</p>
<pre class=""><code class="hljs language-bash">docker rmi nginx:1.20.2
# 或者
docker rmi 74cc54e27dc4</code></pre>
<p> </p>
<p>自己构建镜像</p>
<pre class=""><code class="hljs language-bash"># -t 是给镜像起名,格式也是名字:版本,不指定版本默认为latest
# . 是指定Dockerfile所在目录,如果在当前目录,则指定为.
docker build -t myImage:1.0 .
</code></pre>
<p> </p>
<p>打包镜像</p>
<pre class=""><code class="hljs language-bash"># 在当前路径下保存一个文件名为nginx-1.20.2.tar的文件,里面包含nginx:1.20.2的镜像
docker -o nginx-1.20.2.tar nginx:1.20.2 </code></pre>
<p> </p>
<p>加载打包的镜像</p>
<pre class=""><code class="hljs language-css">docker load -i nginx-1.20.2.tar</code></pre> |
1 |
37 |
1 |
1/12/26, 2:22 PM |
1/12/26, 2:22 PM |
View Edit Delete |
| 15 |
docker容器操作 |
<p>查看正在运行的容器</p>
<pre class=""><code class="hljs language-undefined">docker ps</code></pre>
<p> </p>
<p>启动容器</p>
<pre class=""><code class="hljs language-bash"># 启动名为nginx的容器
docker start nginx</code></pre>
<p> </p>
<p>停止容器</p>
<pre class=""><code class="language-bash hljs"># 停止名为nginx的容器
docker stop nginx</code></pre>
<p> </p>
<p>删除容器</p>
<pre class=""><code class="hljs language-bash"># 前提必须stop容器
docker rm ngxin
#或者-f强制删除
或者 docker rm -f ngxin(IMAGE ID和IMAGE NAME都可以)</code></pre>
<p> </p>
<p>查看日志</p>
<pre class=""><code class="language-bash hljs">docker logs</code></pre>
<p> </p>
<p>进入某个容器内部</p>
<pre class=""><code class="language-bash hljs"># 进入nginx这个容器内部
docker exec -it nginx bash</code></pre>
<p> </p>
<p>从容器内部回到宿主机</p>
<pre class=""><code class="hljs language-bash">exit</code></pre>
<p> </p>
<p> </p> |
1 |
37 |
1 |
1/12/26, 2:26 PM |
1/22/26, 10:43 AM |
View Edit Delete |
| 16 |
docker数据卷操作 |
<p>创建数据卷</p>
<pre class=""><code class="hljs language-lua">docker volume create </code></pre>
<p> </p>
<p>查看所有数据卷</p>
<pre class=""><code class="hljs language-bash">docker volume ls</code></pre>
<p> </p>
<p>删除指定数据卷</p>
<pre class=""><code class="hljs language-bash">docker volume rm</code></pre>
<p> </p>
<p>查看某个数据卷的详情</p>
<pre class=""><code class="language-bash hljs">docker volume inspect
docker volume inspect nginx</code></pre>
<p> </p>
<p>清除所有未使用的数据卷</p>
<pre class=""><code class="hljs language-undefined">docker volume prune</code></pre> |
1 |
37 |
1 |
1/12/26, 2:28 PM |
1/12/26, 2:28 PM |
View Edit Delete |
| 17 |
docker 网络操作 |
<p>创建一个网络</p>
<pre class=""><code class="language-bash hljs">docker network create
docker network create timeless
</code></pre>
<p> </p>
<p>查看所有网络</p>
<pre class=""><code class="language-bash hljs">docker network ls</code></pre>
<p> </p>
<p>删除一个网络</p>
<pre class=""><code class="hljs language-bash">docker network rm</code></pre>
<p> </p>
<p>清除所有未使用的网络</p>
<pre class=""><code class="hljs language-undefined">docker network prune</code></pre>
<p> </p>
<p>使指定容器连接加入某网络</p>
<pre class=""><code class="language-perl hljs"># 同一网络内的容器 可以用容器名互相访问
docker network connect
docker network connect timeless mysql</code></pre>
<p> </p>
<p> </p>
<p>使指定容器连接离开某网络</p>
<pre class=""><code class="hljs language-sql">docker network disconnect</code></pre>
<p> </p>
<p>查看网络详情</p>
<pre class=""><code class="hljs language-undefined">docker network inspect</code></pre> |
1 |
37 |
1 |
1/12/26, 2:31 PM |
1/22/26, 10:43 AM |
View Edit Delete |
| 18 |
Dockerfile 操作 |
<p>FROM 指定基础镜像</p>
<pre class=""><code class="hljs language-css">From centos:7</code></pre>
<p> </p>
<p>ENV 设置环境变量</p>
<pre class=""><code class="hljs language-vbnet">ENV key=value</code></pre>
<p> </p>
<p>COPY 拷贝本地文件到镜像的指定目录</p>
<pre class=""><code class="hljs language-bash">COPY ./jdk17.tar.gz /tmp</code></pre>
<p> </p>
<p>RUN 执行linux的shell命令,一般是安装过程的命令 </p>
<pre class=""><code class="hljs language-bash">RUN tar -zxvf /tmp/jdk17.tar.gz</code></pre>
<p> </p>
<p>EXPOSE 指定容器运行时监听的端口,是给镜像使用者看的</p>
<pre class=""><code class="hljs language-yaml">ESPOSE 8080</code></pre>
<p> </p>
<p>ENTRYPOINT 镜像中应用的启动命令,容器运用时调用</p>
<pre class=""><code class="hljs language-undefined">ENTRYPOINT java -jar xx.jar</code></pre>
<p> </p> |
1 |
37 |
1 |
1/13/26, 12:34 AM |
1/22/26, 10:42 AM |
View Edit Delete |
| 19 |
docker compose 操作 |
<p>docker compose [Options] [command]</p>
<p>Options:</p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>-f<span style="white-space: pre;"> </span>指定compse文件的路径和名称</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>-p 指定project名称</span></p>
<p> </p>
<p>Commands:</p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>up<span style="white-space: pre;"> </span>创建并启动所有service容器</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>down 停止并移除所有容器、网络</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>ps 列出所有启动的容器</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>logs 查看指定的容器日志</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>stop 停止容器</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>start 启动容器</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>restart 重启容器</span></p>
<p><span style="white-space: normal;"><span style="white-space: pre;"> </span>top 查看运行的进程</span></p> |
1 |
37 |
1 |
1/13/26, 12:35 AM |
1/13/26, 12:35 AM |
View Edit Delete |