Centos 安装 docker
<h3 id="一docker安装">一、docker安装</h3><pre><code>centos安装docker
sudo yum update
sudo yum install -y yum-utils device-mapper-persistent-data 1vm2
sudo yum-config-manager --add-repo http://mirrors.ailiyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce
docker -v
</code></pre>
<pre><code>sudo vim /etc/docker/daemon.json
添加
{
"registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"]
}
</code></pre>
<h4 id="1-docker-启动">1 docker 启动</h4>
<pre><code class="language-bash">systemctl start docker
</code></pre>
<h4 id="2-查看docker状态">2 查看docker状态</h4>
<pre><code class="language-bash">systemctl status docker
</code></pre>
<h4 id="3-停止docker">3 停止docker</h4>
<pre><code class="language-bash">systemctl stop docker
</code></pre>
<h4 id="4-重启docker">4 重启docker</h4>
<pre><code>systemctl restart docker
</code></pre>
<h4 id="5-设置开机自启动">5 设置开机自启动</h4>
<pre><code class="language-bash">systemctl enable docker
</code></pre>
<pre><code class="language-bash">docker info
docker --help
</code></pre>
<h3 id="二docker-常用命令">二、docker 常用命令</h3>
<h4 id="1-镜像相关命令">1 镜像相关命令</h4>
<h5 id="11-查看镜像">1.1 查看镜像</h5>
<pre><code class="language-bash">docker images
</code></pre>
<h5 id="12-搜索镜像">1.2 搜索镜像</h5>
<pre><code class="language-bash">docker search centos
</code></pre>
<h5 id="13-拉取镜像">1.3 拉取镜像</h5>
<pre><code class="language-bash">docker pull 镜像名称
eq:
docker pull centos
</code></pre>
<h5 id="14删除镜像">1.4删除镜像</h5>
<h5 id="141-按id删除镜像">1.4.1 按id删除镜像</h5>
<pre><code>docker rmi 镜像id
</code></pre>
<h5 id="142删除所有镜像">1.4.2删除所有镜像</h5>
<pre><code class="language-bash">docker rmi `docker rmi -q`
</code></pre>
<h4 id="2-容器相关命令">2 容器相关命令</h4>
<h5 id="21-查看正在运行的容器">2.1 查看正在运行的容器</h5>
<pre><code class="language-bash">docker ps
# 查看所有
docker ps -a
</code></pre>
<h5 id="22-创建启动容器">2.2 创建启动容器</h5>
<p>命令及参数</p>
<p>命令:docker run</p>
<p>-i: 表示运行容器</p>
<p>-t: 表示容器启动后会进入其命令行</p>
<p>--name: 为创建的容器命名</p>
<p>-v: 表示目录映射关系</p>
<p>-d: 会创建一个守护容器在后台运行(这样创建容器不会自动登录容器,如果只加-i-t两个参数,创建后自动登录容器)</p>
<p>-p: 表示端口映射,前者是宿主主机端口,后者是容器内的映射端口</p>
<h6 id="1交互式创建容器">(1)交互式创建容器</h6>
<pre><code class="language-bash">docker run -it --name=容器名称 镜像名称:标签 /bin/nash
docker run -it --name=mycentos centos:7 /bin/nash
#查看启动的容易
docker ps
</code></pre>
<h6 id="2守护式方式创建容器">(2)守护式方式创建容器</h6>
<pre><code class="language-bash">docker run -di name=容器名称 镜像名称:标签
</code></pre>
<p>登录守护式方式</p>
<pre><code class="language-bash">docker exec -it 容器名称(或者容器id) /bin/bash
</code></pre>
<p><img src="https://i.loli.net/2021/06/02/uf2yUJzeQAxw3gG.png" alt="image-20210403160212535.png" loading="lazy"></p>
<h5 id="23-停止容器">2.3 停止容器</h5>
<pre><code class="language-bash">docker stop 容器名称(或者容器id)
</code></pre>
<p><img src="https://i.loli.net/2021/06/02/V9cjXUhQxAMPlT6.png" alt="image-20210403160812308.png" loading="lazy"></p>
<h5 id="24-启动容器">2.4 启动容器</h5>
<pre><code class="language-bash">docker start 容器名称(或者容器id)
</code></pre>
<h5 id="25-文件拷贝">2.5 文件拷贝</h5>
<pre><code class="language-bash">docker cp 需要拷贝的文件或者目录 容器名称:容器目录
#容器拷贝宿主机
docker cp 容器名称:容器目录需要拷贝的文件或者目录
</code></pre>
<p><img src="https://i.loli.net/2021/06/02/ngm7UJVcIe1kDAq.png" alt="image-20210403161456499.png" loading="lazy"></p>
<h5 id="26-目录挂载同步">2.6 目录挂载(同步)</h5>
<pre><code class="language-bash">docker run -di --name=mycentos3 -v /usr/local/myhtml:/usr/localmyhtml centos:7
</code></pre>
<h5 id="27-查看容器ip地址">2.7 查看容器ip地址</h5>
<pre><code class="language-bash">docker inspect 容器名称
eq: 显示很多信息
docker inspect mycentos2
</code></pre>
<p><img src="https://i.loli.net/2021/06/02/RNI41myqbpAfUXo.png" alt="image-20210403162405980.png" loading="lazy"></p>
<pre><code class="language-bash">docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos2
</code></pre>
<p><img src="https://i.loli.net/2021/06/02/lSrgfuUNXxQ7keG.png" alt="image-20210403162718851.png" loading="lazy"></p>
<h5 id="28-删除容器">2.8 删除容器</h5>
<p>if 容器正在运行 需要关闭 然后移除</p>
<pre><code class="language-bash">docker rm 容器名称
</code></pre>
<p><img src="https://i.loli.net/2021/06/02/DLrqvsW671XIPuR.png" alt="image-20210403163234911.png" loading="lazy"></p>
<h3 id="三应用部署">三、应用部署</h3>
<h4 id="1-mysql部署">1 MySQL部署</h4>
<p>(1)拉取mysql镜像</p>
<pre><code class="language-bash">docker pull centos/mysql-57-centos7
</code></pre>
<p>(2)创建容器</p>
<pre><code class="language-bash">docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
</code></pre>
<p>-p: 代表端口映射,格式 宿主机映射端口:容器运行端口</p>
<p>-e: 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的登录密码</p>
<p>(3)进入mysql容器</p>
<pre><code class="language-bash">docker exec -it tensquare_mysql /bin/bash
</code></pre>
<p>(4)登录mysql</p>
<pre><code class="language-bash">mysql -u root -p
</code></pre>
<p>(5)远程登录mysql</p>
<p>连接宿主机的ip 端口33306</p>
<h4 id="2-tomcat部署">2 tomcat部署</h4>
<p>(1)拉取tomact镜像</p>
<pre><code class="language-bash">docker pull tomcat:7-jre7
</code></pre>
<p>(2)创建容器</p>
<p><strong>端口映射</strong></p>
<p><strong>目录挂载</strong></p>
<pre><code class="language-bash">docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
</code></pre>
<h4 id="3-nginx部署">3 Nginx部署</h4>
<p>(1)拉取nginx镜像</p>
<pre><code class="language-bash">docker pull nginx
</code></pre>
<p>(2)创建容器</p>
<pre><code class="language-bash">docker run -di --name=mynginx -p 80:80 nginx
</code></pre>
<p>(3)进入nginx容器</p>
<pre><code class="language-bash">docker exec -it mynginx /bin/bash
</code></pre>
<p>镜像目录</p>
<p><img src="https://i.loli.net/2021/06/02/qhLtXp9wfcIADuv.png" alt="image-20210403210303976.png" loading="lazy"></p>
<p>nginx 安装目录</p>
<p>/etc/nginx</p>
<p><img src="https://i.loli.net/2021/06/02/H7G96uqYZdXCSaK.png" alt="image-20210403210433838.png" loading="lazy"></p>
<p>nginx 配置文件 nginx.conf</p>
<p><img src="https://i.loli.net/2021/06/02/zAQtOe5WX4Pur28.png" alt="image-20210403210545117.png" loading="lazy"></p>
<p>conf.d/*.conf :包含的配置文件</p>
<p><img src="https://i.loli.net/2021/06/02/Jhl9k6YQWwaFAEb.png" alt="image-20210403210713889.png" loading="lazy"></p>
<p><img src="https://i.loli.net/2021/06/02/GTaq9RMBCrxEDdt.png" alt="image-20210403210759726.png" loading="lazy"></p>
<p>/usr/share/nginx/html文件夹:访问nginx静态页面</p>
<p><img src="https://i.loli.net/2021/06/02/OsGlTNIdg6j3moX.png" alt="image-20210403210924635.png" loading="lazy"></p>
<h4 id="4-redis部署">4 Redis部署</h4>
<p>(1)拉取redis镜像</p>
<pre><code class="language-bash">docker pull redis
</code></pre>
<p>(2)创建容器</p>
<pre><code class="language-bash">docker run -di --name=myredis -p 6379:6379 redis
</code></pre>
<h3 id="四迁移与备份">四、迁移与备份</h3>
<h4 id="1-容器保存为镜像">1 容器保存为镜像</h4>
<pre><code class="language-bash">docker commit mynginx(容器名称) mynginx_i(镜像名称)
</code></pre>
<h4 id="2-镜像备份">2 镜像备份</h4>
<pre><code class="language-bash">docker save -o mynginx.tar(导出的文件) mynginx_i(镜像名称)
</code></pre>
<h4 id="3-镜像恢复">3 镜像恢复</h4>
<pre><code class="language-bash">docker load -imynginx.tar(文件名)
</code></pre>
<h3 id="五dockerfile">五、Dockerfile</h3>
<h4 id="1-dockerfile简介">1 Dockerfile简介</h4>
<p>Dockerfile由一系列命令和参数构成的脚本,这些命令应用于基础镜像并穿件一个新的镜像。</p>
<h4 id="2-常用命令">2 常用命令</h4>
<p><img src="https://i.loli.net/2021/06/02/NtIZlYawGKT58rS.png" alt="image-20210403213707170.png" loading="lazy"></p>
<p><img src="https://i.loli.net/2021/06/02/wfOA7upmXRkqeBV.png" alt="image-20210403214252935.png" loading="lazy"></p>
<p><img src="https://i.loli.net/2021/06/02/NsVZvMBbUhOzriE.png" alt="image-20210403214404278.png" loading="lazy"></p>
<p><img src="https://gitee.com/iforeverhz/picture/raw/master/img/image-20210404164236068.png" alt="image-20210404164236068" loading="lazy"></p>
<h3 id="六docker私有仓库">六、Docker私有仓库</h3>
<h4 id="1-创建私有仓库镜像">1 创建私有仓库镜像</h4>
<p>(1拉取私有仓库镜像</p>
<pre><code class="language-bash">docker pull registry
</code></pre>
<p>(2) 启动私有仓库镜像</p>
<pre><code class="language-bash">docker run -di --name=registry -p 5000:5000 registry
</code></pre>
<p>(3) 验证</p>
<p>打开浏览器访问http://192.168.141.129:5000/v2/_catalog</p>
<p>看到{"repositories":[]}表示私有仓库搭建成功并且内容为空</p>
<p>(4)修改/etc/docker下的daemon文件</p>
<p>添加</p>
<pre><code>"insecure-registries":["192.168.141.129:5000"]
</code></pre>
<p>重启docker</p>
<pre><code class="language-bash">systemctl restart docker
</code></pre>
<h4 id="2-镜像上传到私有仓库">2 镜像上传到私有仓库</h4>
<p>(1)标记此镜像为私有仓库的镜像</p>
<pre><code class="language-bash">docker tag jdk1.8(自己的镜像) 192.168.141.129:5000
</code></pre>
<p>(2)上传标记的镜像</p>
<pre><code class="language-bash">docker push 192.168.141.129:5000/jdk1.8
</code></pre>
<p>https://blog.csdn.net/qq_43827595/article/details/109487664</p><br><br>
来源:https://www.cnblogs.com/iforeverhz/p/16255720.html
頁:
[1]