系统运维


docker安装配置和服务部署

<h1>一、docker安装配置</h1> <h3>yum安装</h3> <pre><code class="language-bash">yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum install docker-ce systemctl start docker docker version</code></pre> <h4>详细步骤</h4> <p>安装docker依赖</p> <pre><code class="language-bash">yum install -y yum-utils device-mapper-persistent-data lvm2</code></pre> <p>添加docker的yum源</p> <pre><code class="language-bash">yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo</code></pre> <p>更新yum并安装docker引擎</p> <pre><code class="language-bash"> yum makecache fast</code></pre> <p>安装docker</p> <pre><code class="language-bash"> yum install docker-ce</code></pre> <p>启动docker服务</p> <pre><code class="language-bash">systemctl start docker</code></pre> <p>验证是否安装成功</p> <pre><code class="language-bash">docker version</code></pre> <h3>apt安装docker</h3> <pre><code class="language-bash">#腾讯云源 sudo apt-get update sudo apt-get install -y ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo &amp;quot;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/ \ $(. /etc/os-release &amp;amp;&amp;amp; echo &amp;quot;$VERSION_CODENAME&amp;quot;) stable&amp;quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin systemctl enable docker systemctl status docker docker info </code></pre> <h3>切国内源</h3> <pre><code class="language-yml">vim /etc/docker/daemon.json { &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://nrbewqda.mirror.aliyuncs.com&amp;quot;,&amp;quot;https://dmmxhzvq.mirror.aliyuncs.com&amp;quot;] } #腾讯云源 https://mirror.ccs.tencentyun.com/ #https://hub.daocloud.io/ systemctl daemon-reload systemctl restart docker</code></pre> <h3>调整数据路径储存位置</h3> <p>docker 26版本 1、以通过更新 Docker 的配置文件 `daemon.json 来实现</p> <pre><code class="language-bash"> #1-调整配置文件 vim /etc/docker/daemon.json #增加一下配置 { &amp;quot;data-root&amp;quot;: &amp;quot;/data/docker_repos/docker&amp;quot; } sudo systemctl restart docker</code></pre> <p>2、通过直接在启动 Docker 守护进程时提供一个新的命令行参数</p> <pre><code class="language-bash">#1-调整启动文件 vim /etc/systemd/system/multi-user.target.wants/docker.service #调整一下配置 ExecStart=/usr/bin/dockerd --data-root=/data/docker_repos/docker --storage-driver=overlay2 #重启服务 sudo systemctl daemon-reload sudo systemctl restart docker sudo systemctl status docker</code></pre> <h3>修改容器自启配置</h3> <pre><code class="language-bash">#查看容器当前自启参数  docker inspect --format &amp;#039;{{ .HostConfig.RestartPolicy }}&amp;#039; 容器id #关闭自启配置 docker update --restart=no 容器id</code></pre> <h3>进程关不掉</h3> <pre><code class="language-bash">#Warning: Stopping docker.service, but it can still be activated by: docker.socke #停用Docker自动唤醒机制 systemctl stop docker.socket systemctl stop docker</code></pre> <h1>二、docker部署mysql8</h1> <h3>yum安装</h3> <pre><code class="language-bash">yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum install docker-ce systemctl start docker docker version</code></pre> <h3>详细步骤</h3> <p>在[hub.docker.com](<a href="https://link.juejin.cn/?target=https%3A%2F%2Fhub.docker.com%2F">https://link.juejin.cn/?target=https%3A%2F%2Fhub.docker.com%2F</a> &quot;<a href="https://hub.docker.com/&quot;)上搜索mysql镜像">https://hub.docker.com/&quot;)上搜索mysql镜像</a> 启动镜像</p> <pre><code class="language-bash">docker run -p 3308:3306 --name mysql8.2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.39 </code></pre> <p>创建挂载目录</p> <pre><code class="language-bash">mkdir -p /data/mysql8.0.20/ 拷贝配置文件到创建的目录下 docker cp mysql8:/etc/mysql /data/mysql8.0.20/</code></pre> <p>删除并重启容器</p> <pre><code class="language-bash">docker stop mysql8 docker rm -f mysql8 </code></pre> <p>编辑my.cnf</p> <pre><code class="language-bash">cd /data/mysql8.0.20/mysql/conf.d vim my.cnf [mysqld] user=mysql character-set-server=utf8 default_authentication_plugin=mysql_native_password secure_file_priv=/var/lib/mysql expire_logs_days=7 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION max_connections=1000 [client] default-character-set=utf8mb4 [mysql] </code></pre> <p>启动mysql8服务</p> <pre><code class="language-bash">#!/bin/sh vim docker_insert_mysql8.0.20.sh sh docker_insert_mysql8.0.20.sh docker run \ -p 3307:3306 \ --name mysql8 \ --privileged=true \ --restart unless-stopped \ -v /docker/mysql8/mysql:/etc/mysql \ -v /docker/mysql8/logs:/logs \ -v /docker/mysql8/data:/var/lib/mysql \ -v /docker/mysql8/mysql-files:/var/lib/mysql-files \ -v /etc/localtime:/etc/localtime \ -e MYSQL_ROOT_PASSWORD=123456 \ -e MYSQL_ROOT_HOST=&amp;#039;%&amp;#039; \ -d mysql:8 </code></pre> <pre><code class="language-yaml">version: &amp;#039;3&amp;#039; services: mysql8: image: mysql:8.0.20 container_name: mysql8 privileged: true restart: unless-stopped ports: - &amp;quot;3307:3306&amp;quot; volumes: - /docker/mysql8/mysql:/etc/mysql - /docker/mysql8/logs:/logs - /docker/mysql8/data:/var/lib/mysql - /docker/mysql8/mysql-files:/var/lib/mysql-files - /etc/localtime:/etc/localtime environment: - MYSQL_ROOT_PASSWORD: &amp;quot;123456&amp;quot; - TZ=Asia/Shanghai - MYSQL_ROOT_HOST=&amp;#039;%&amp;#039; - TZ=Asia/Shanghai #正确的 version: &amp;#039;3.8&amp;#039; services: mysql8: image: mysql:8.0.39 container_name: mysql8 privileged: true restart: unless-stopped ports: - &amp;quot;3306:3306&amp;quot; environment: MYSQL_ROOT_PASSWORD: 17BtwaM74DH@u3ydP MYSQL_ROOT_HOST: &amp;#039;%&amp;#039; volumes: - /data/docker_repos/mysql8/mysql:/etc/mysql - /data/docker_repos/mysql8/logs:/logs - /data/docker_repos/mysql8/data:/var/lib/mysql - /data/docker_repos/mysql8/mysql-files:/var/lib/mysql-files - /etc/localtime:/etc/localtime:ro</code></pre> <p>可以改密码</p> <pre><code class="language-bash">docker exec -it mysql8 bash mysql -u root -p grant all PRIVILEGES on *.* to root@&amp;#039;%&amp;#039; WITH GRANT OPTION; use mysql update user set host=&amp;#039;%&amp;#039; where user=&amp;#039;root&amp;#039;; #由于Mysql5.6以上的版本修改了Password算法,这里需要更新密码算法,便于使用Navicat连接 grant all PRIVILEGES on *.* to root@&amp;#039;%&amp;#039; WITH GRANT OPTION; ALTER user &amp;#039;root&amp;#039;@&amp;#039;%&amp;#039; IDENTIFIED BY &amp;#039;123456&amp;#039; PASSWORD EXPIRE NEVER; ALTER user &amp;#039;root&amp;#039;@&amp;#039;%&amp;#039; IDENTIFIED WITH mysql_native_password BY &amp;#039;123456&amp;#039;; FLUSH PRIVILEGES;</code></pre> <h1>三、docker部署gitlab</h1> <p>docker-compose.yml</p> <pre><code>version: &amp;#039;2&amp;#039; services: gitlab: image: &amp;#039;gitlab/gitlab-ce:latest&amp;#039; restart: unless-stopped hostname: &amp;#039;yw-gitlab.shiyue.com&amp;#039; environment: TZ: &amp;#039;Asia/Shanghai&amp;#039; GITLAB_OMNIBUS_CONFIG: | external_url &amp;#039;https://yw-gitlab.shiyue.com&amp;#039; gitlab_rails[&amp;#039;time_zone&amp;#039;] = &amp;#039;Asia/Shanghai&amp;#039; # 需要配置到 gitlab.rb 中的配置可以在这里配置,每个配置一行,注意缩进。 # 比如下面的电子邮件的配置: gitlab_rails[&amp;#039;smtp_enable&amp;#039;] = true gitlab_rails[&amp;#039;smtp_address&amp;#039;] = &amp;quot;smtp.exmail.qq.com&amp;quot; gitlab_rails[&amp;#039;smtp_port&amp;#039;] = 25 gitlab_rails[&amp;#039;smtp_user_name&amp;#039;] = &amp;quot;yunwei@shiyue.com&amp;quot; gitlab_rails[&amp;#039;smtp_password&amp;#039;] = &amp;quot;55uHgzqYMEDZM5H3&amp;quot; gitlab_rails[&amp;#039;smtp_authentication&amp;#039;] = &amp;quot;login&amp;quot; gitlab_rails[&amp;#039;smtp_enable_starttls_auto&amp;#039;] = true gitlab_rails[&amp;#039;gitlab_default_projects_features_builds&amp;#039;] = false # gitlab_rails[&amp;#039;smtp_tls&amp;#039;] = true gitlab_rails[&amp;#039;gitlab_email_from&amp;#039;] = &amp;#039;yunwei@shiyue.com&amp;#039; ports: - &amp;#039;10080:80&amp;#039; - &amp;#039;10443:443&amp;#039; - &amp;#039;10022:22&amp;#039; volumes: - /data/docker_repos/yw-gitlab/config:/etc/gitlab - /data/docker_repos/yw-gitlab/data:/var/opt/gitlab - /data/docker_repos/yw-gitlab/logs:/var/log/gitlab - /data/docker_repos/yw-gitlab/ssl:/etc/gitlab/ssl networks: extnetwork: ipv4_address: 172.23.0.16 volumes: config: data: logs: networks: extnetwork: ipam: config: - subnet: 172.23.0.0/24 gateway: 172.23.0.1</code></pre> <h3>切换ssh端口</h3> <pre><code class="language-bash">#修改配置文件端口 vim /etc/gitlab/gitlab.rb gitlab_rails[&amp;#039;gitlab_shell_ssh_port&amp;#039;] = 10022 #重载服务 gitlab-ctl reconfigure</code></pre>

页面列表

ITEM_HTML