#系统部署 #环境搭建
这里使用了 [[linux 从购买服务器到搭建ElasticSearch docker服务]]
首先连接服务器 输入uname -r
查看内核版本3.10.0-1062.18.1.el7.x86_64
在输入 cat /etc/os-release
查看系统版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"
安装 docker 我这里是在阿里云买的服务器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 # 卸载老版本的docker 具体命令看文档 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 安装工具包 yum install -y yum-utils # 部署镜像下载地址 # 国外 yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 更新yum软件包索引 yum makecache fast # 最新版本安装命令 ce版本为社区版 ee为企业版 yum install -y docker-ce docker-ce-cli containerd.io # 可以看官方文档安装指定的docker版本 # 启动docker systemctl start docker # 开机自启动 systemctl enable docker # 容器自启动 docker update --restart=on-failure:3 redis # 使用 命令判断是否运行成功 docker version docker run hello-world # [root@micah-first ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest d1165f221234 6 months ago 13.3kB
^d90db2
卸载 docker
Uninstall the Docker Engine, CLI, and Containerd packages:
1 2 3 $ sudo yum remove docker-ce docker-ce-cli containerd.io $ sudo rm -rf /var/lib/docker $ sudo rm -rf /var/lib/containerd
配置镜像加速器 1 2 3 4 5 6 7 8 9 10 11 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://你的阿里云加速域名.mirror.aliyuncs.com"] } sudo systemctl daemon-reload sudo systemctl restart docker
镜像基本命令: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 docker info #查看镜像信息 docker --help #查看命令 docker version #查看版本 docker images #查看镜像 docker images --help #查看镜像命令的相关指令 -a, --all Show all images (default hides intermediate images) --digests Show digests -f, --filter filter Filter output based on conditions provided --format string Pretty-print images using a Go template --no-trunc Don t truncate output -q, --quiet Only show image IDs [root@micah-first ~]# docker search mysql #搜索相关镜像,这里搜索mysql [root@micah-first ~]# docker search mysql -f=stars=3000 # 管理为收藏大于3000的mysql搜索 docker pull 项目名字:版本 #项目下载到本地,可指定版本 docker rmi -f id #删除镜像 后面可指定多个id docker rmi -f $(docker images -aq) 删除所有可删除镜像
容器使用命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 docker ps #查看正在运行的容器 -a查看历史使用记录 q只查看id n=x显示几个 docker ps -an=1 #查看最近运行的一个容器 docker run #通过镜像运行一个容器 -it 镜像名字 /bin/bash # 进入容器 -d #后台方式运行 -p #设置端口号 一般使用 主机端口:容器端口 -P 随机端口 --name 设置名字 exit# 退出容器 ctrl+Q+P 不关闭容器退出 docker rm -f id#根据id强制删除某个容器 docker rm -f $(docker ps -aq) 一键强制删除 # 下面命令都需要id docker start#开启 docker stop#停止 docker restart#重启 docker kill #强制关闭容器
进阶操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 以后台的模式运行centos 容器 同时写入shell脚本 循环输出Micah -d后台 -c写入脚本 不为docker run的参数 为linux的参数 docker run -d centos /bin/bash -c "while true;do echo Micah;sleep 1;done" # 这里我们先复制了容器id 以时间戳 跟随 只显示10个的模式查看ea20cf7ac220容器的日志 -f 跟随 -t时间戳 -n显示数量 docker logs -ft -n 10 ea20cf7ac220 docker top 容器 # 查看容器内部的进程 docker inspect 容器 # 查看容器的参数(重要) docker exec -it 容器id /bin/bash #进入正在运行的容器 docker attach 容器id # 进入正在运行的容器(不新建控制台) docker cp 容器id:文件路径 宿主机路径 #拷贝容器里面的文件到宿主机上
图形化管理页面 1 2 3 docker run -d -p 8088:9000 \ --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
提交生成镜像 1 2 3 4 # 当你操作好当前容器时,想要保存里面的配置,将它打包成一个镜像,你可以使用下面的指令 docker commit -a="作者名字" -m="声明" 容器名字 要生成的镜像名字:版本号 # 比如 docker commit -a="micah" -m="add many web app" tomcat03 tomcat02:1.0
数据卷的使用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # 解析 -v 宿主机地址:容器内地址 挂在之后可以将文件夹映射 类似于虚拟机的共享文件夹 # -e 系统应用变量的使用 后面可插入一些系统变量 # MYSQL_ROOT_PASSWORD=root就为设置mysql密码 docker run --name mysql01 -p 3306:3306 -v /home/share/mysql/conf:/etc/mysql/conf.d -v /home/share/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xxx -d mysql:5.7 # 部署mysql并设置密码 docker run --name mysql01 -p 3306:3306 -v /home/share/mysql/conf:/etc/mysql/conf.d -v /home/share/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xxx -d mysql:5.7 # 部署nginx docker run \ -p 81:80 \ --name nginx \ -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /home/nginx/log:/var/log/nginx \ -v /home/nginx/html:/usr/share/nginx/html \ -e LANG=C.UTF-8 \ -e LC_ALL=C.UTF-8 \ -d nginx:1.19
匿名卷和具名卷 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 通过-v 指令添加出来的卷分为匿名卷和具名卷 # 这里上面为匿名,下面为具名 [root@micah-first ~]# docker volume ls DRIVER VOLUME NAME local bbad98c0703f130333d509c29c95b2ff750d17f430436b20f6966da8d1d6e7a8 local mysql01 # 创建方法 # 具名 -v 名称:容器内路径 #名称不能带有/开头 # 匿名 -v 容器内路径 # 映射匿名 -v 宿主机地址:容器内地址
拓展 1 2 3 4 5 6 # docker run -v 容器内路径:ro/rw 镜像名字 可创建权限不同的容器内环境 # rw 为读写 readwrite # ro 为只读 readonly docker run --name mysql01 -p 3310:3306 -v /home/share/mysql/conf:/etc/mysql/conf.d:ro -v /home/share/mysql/data:/var/lib/mysql:ro -e MYSQL_ROOT_PASSWORD=xxx -d mysql:5.7
[[docker 使用笔记②]]