【工具】Docker 入门及常用指令

SueWakeup

个人主页:SueWakeup

系列专栏:为祖国的科技进步添砖Java

个性签名:保留赤子之心也许是种幸运吧

目录

[1. 什么是 Docker ?](#1. 什么是 Docker ?)

[2. Docker 安装](#2. Docker 安装)

[3. Docker 镜像](#3. Docker 镜像)

[4. Docker 容器](#4. Docker 容器)

[4.1 运行容器](#4.1 运行容器)

[4.2 查看正在运行的容器](#4.2 查看正在运行的容器)

[4.3 停止容器运行](#4.3 停止容器运行)

[4.4 启动容器](#4.4 启动容器)

[4.5 删除容器(只能删除停止运行的容器)](#4.5 删除容器(只能删除停止运行的容器))

[5. 案例:Docker 安装 MySql](#5. 案例:Docker 安装 MySql)

[5.1 下载镜像](#5.1 下载镜像)

[5.2 创建环境目录](#5.2 创建环境目录)

[5.3 主 mysql 容器运行](#5.3 主 mysql 容器运行)

[5.4 配置 mysql 权限账户](#5.4 配置 mysql 权限账户)

[5.5 登录主服务器 mysql](#5.5 登录主服务器 mysql)

[5.6 修改密码和设置从服务器登录用户](#5.6 修改密码和设置从服务器登录用户)

[6. 案例:Docker 安装 Mongo](#6. 案例:Docker 安装 Mongo)

[6.1 下载镜像](#6.1 下载镜像)

[6.2 运行 mongo](#6.2 运行 mongo)

[6.3 进入 mongo 容器](#6.3 进入 mongo 容器)

注:手机端浏览本文章可能会出现 "目录"无法有效展示的情况,请谅解,点击侧栏目录进行跳转


1. 什么是 Docker ?

Docker 是基于 Go语言实现的开源项目,用于开发、运行和管理应用程序,利用容器化技术,能够将应用程序及其依赖项打包到一个可移植的容器中,从而实现跨平台部署

主要目标: "Build,Ship and Run Any App,Anywhere",通过对应的组件的封装、分发、部署、运行等生命周期管理,让用户 APP 及运行环境能够做到 "一次封装,到处运行"


2. Docker 安装

  1. 启动:systemctl start docker
  2. 查看状态:ststemctl status docker
  3. 测试:docker run hello-world
  4. 查看 docker 版本信息:docker version

3. Docker 镜像

  • 获取镜像网站:https://hub.daocloud.io/
  • 获取镜像:docker pull 镜像名称
  • 查看本地所有镜像:docker images
  • 删除本地镜像:docker rmi 镜像标识

4. Docker 容器

4.1 运行容器

Go 复制代码
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识

参数解释:

-d:代表后台执行

-p:将当前 Linux 的端口和容器的端口号进行映射

--name:容器的名字

4.2 查看正在运行的容器

Go 复制代码
docker ps -qa

参数解释:

-a:所有的容器(包括没有运行的容器)

-q:只查看标识

4.3 停止容器运行

Go 复制代码
docker stop 容器标识

4.4 启动容器

Go 复制代码
docker start 容器标识

4.5 删除容器(只能删除停止运行的容器)

Go 复制代码
docker rm 容器标识

docker rm -f 容器标识(强制删除容器,即使正在运行)

5. 案例:Docker 安装 MySql

5.1 下载镜像

Go 复制代码
docker pull daocloud.io/libary.mysql:8.0.16

5.2 创建环境目录

Go 复制代码
cd /usr/local/
mkdir mysql
cd mysql
mkdir master-data

5.3 主 mysql 容器运行

Go 复制代码
docker run --name mysql-master --privileged=true -v /usr/local/mysql/masterdata:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d 
daocloud.io/library/mysql:8.0.16 --character-set-server=utf8 --server-id=1 --
lower_case_table_names=1

参数:

--privileged:指定当前容器是否真正的具有 root 权限

-p:表示宿主机上的某个端口映射到 docker 容器内的某个端口

-d:参数制定了当前容器是在后台运行

--server-id:设置服务器的编号,主从复制的每一个服务的编号都不能相同

5.4 配置 mysql 权限账户

Go 复制代码
docker exec -it mysql-master /bin/bash

5.5 登录主服务器 mysql

Go 复制代码
mysql -uroot --p

5.6 修改密码和设置从服务器登录用户

Go 复制代码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
CREATE USER 'slave_one'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'slave_one'@'%';
CREATE USER 'slave_two'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'slave_two'@'%';
flush privileges;

6. 案例:Docker 安装 Mongo

6.1 下载镜像

Go 复制代码
docker pull mongo:5.0.3

6.2 运行 mongo

Go 复制代码
docker run -itd --name mongoserver -p 27017:27017 mongo:5.0.3

6.3 进入 mongo 容器

Go 复制代码
docker exec -it mongoserver mongosh
相关推荐
鳄鱼杆1 天前
服务器 | Docker应用开发与部署的实践以及阿里云镜像加速配置
服务器·阿里云·docker
逍遥浪子~1 天前
docker实践(一)
运维·docker·容器
AI云原生1 天前
如何使用Docker快速运行Firefox并实现远程访问本地火狐浏览器的教程
运维·docker·云原生·容器·serverless·firefox·kubeless
❀͜͡傀儡师1 天前
Docker部署搜索引擎SearXNG
运维·docker·容器·searxng
虎头金猫1 天前
如何在Linux上使用Docker在本地部署开源PDF工具Stirling PDF:StirlingPDF+cpolar让专业操作像在线文档一样简单
linux·运维·ubuntu·docker·pdf·开源·centos
janthinasnail1 天前
使用Docker搭建MaxKB智能体平台
docker·maxkb
计算机小手1 天前
高效 P2P 文件传输工具:FileSync 利用 WebRTC 技术实现极速安全传输
经验分享·docker·webrtc·开源软件
笨鸟贤妃1 天前
Ubuntu 22.04 安装 Docker & Compose 最新最简单完整指南
ubuntu·docker·compose
感哥1 天前
Docker存储
docker
灞波儿奔波儿灞1 天前
Lucky STUN穿透结合群晖NAS实现docker下transmission监听端口动态更新
docker·群晖·stun·lucky