微服架构基础设施环境平台搭建 -(五)Docker常用命令

本文主要列出了Docker常用的命令

微服架构基础设施环境平台搭建 系列文章


微服架构基础设施环境平台搭建 -(一)基础环境准备
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建
微服架构基础设施环境平台搭建 -(三)Docker+Kubernetes集群搭建
微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台
微服架构基础设施环境平台搭建 -(五)Docker常用命令

目录

  • 微服架构基础设施环境平台搭建 -(五)Docker常用命令
  • 一、Docker命令
    • 1、重启docker服务
    • 2、Docker镜像操作命令
    • 3、Docker端口操作命令
    • 4、Docker挂载操作
    • 5、Docker日志操作
    • 6、Docker容器操作
  • 二、docker-compose命令
  • 三、与镜像仓库相关命令
  • 四、Dockerfile
    • 1、Dockerfile文件
    • 2、Docker镜像编译命令
    • 1、下载mysql镜像
    • 2、启动镜像
    • 3、配置mysql参数
    • 4、将my.cnf上传到mysql_5.7容器中
    • 5、重新构建新的mysql镜像文件
    • 6、重新启动新的镜像
    • 6、将打包的hxyl_mysql:5.7镜像上传Harbor私仓

一、Docker命令

下面是关与Docker常用命令,与当前部署操作无关,不需要在服务器上执行,不需要了解的可以跳过


1、重启docker服务

systemctl restart docker

2、Docker镜像操作命令

# 下载镜像
docker pull name:tag# 查看本地已下载
docker images# 删除镜像
docker rmi imageId# 镜像busybox工具
docker run -it --name test-nginx2 busybox sh
docker run -it --name test-nginx2 --link test-nginx busybox sh

3、Docker端口操作命令

# 容器端口映射
docker run --name test-nginx -d -p 8080:80 nginx
# 主机网络映射,将容器的所有端口全部映射到宿主机,此方法未做宿主机与容器隔离
docker run --rm --network host --name test-nginx2 nginx

说明:


端口映射
-p [宿主机端口]:[容器里的端口],例如: -p 8080:80
-p [宿主机起始端口-宿主机结束端口]:[容器里的起始端口-容器里的结束端口],例如: -p 80-90:80-90
–rm 参数是容器退出后自动删除

4、Docker挂载操作

docker run --name test-nginx2 -d -p 8081:80 -v /data:/usr/share/nginx/html nginx

说明:


目录映射参数
-v [宿主机目录]:[容器里的目录]

5、Docker日志操作

docker logs -f test-nginx

说明:


实时输出Docker容器的日志
docker logs -f 容器ID

6、Docker容器操作

# 查看本地docker容器
docker ps -a# 如果已经创建或通过docker run --name [容器名称] [镜像名称]启动容器而创建成功容器后,后来容器被停止后想要再重启该容器执行下面命令
# 命令格式: docker start [容器名称]/[容器ID]
docker start test-nginx
docker restart test-nginx# 查看docker详细信息,包括网络
docker inspect test-nginx# 进入容器执行命令
docker exec -it test-nginx sh# 删除容器
docker rm -f test-nginx

说明:


-i 标准输入
-t 终端


二、docker-compose命令

相关操作


# 进入容器执行命令
# 构建镜像
docker-compose build .# 启动服务
docker-compose up -d# 停止服务、删除所有的镜像
docker-compose down --rmi all -v# 查看日志
docker-compose logs -f

三、与镜像仓库相关命令

相关操作


# 登录
docker login 192.168.2.146# 上传至Harbor公开仓库
docker tag nginx:latest 192.168.2.146/pub/nginx:0.0.1
docker push 192.168.2.146/pub/nginx:0.0.1# 上传至Harbor私有仓库
# 私有仓库的上传和下载都需要先登录,公有库只有上传需要先登录
docker tag mysql:5.7 192.168.2.146/prv/mysql:0.0.1
docker push 192.168.1.146/prv/mysql:0.0.1# 退出Harbor
docker loginout 192.168.1.146

四、Dockerfile

1、Dockerfile文件

# 制作base image 基础镜像,尽量使用官方的image作为基础镜像
FROM moxm/java:1.8-full# 容器元信息,帮助信息,类似于注释
LABEL version="1.0"
LABEL maintainer="作者"# 执行系统命令,每个RUN都会使镜像增加一层,所以要避免无用的分层,多条命令用反斜线换行,合成一条命令
RUN yum update && yum install -y vim \nginx# 改变目录,相当于cd命令,如果目录不存在会自动创建并改变为当前目录
WORKDIR /test# ADD 与 COPY要优先使用COPY,ADD除了复制的功能还有解压功能
# 将当前目录的app.tar.gz添加到容器/test/目录下,并解压
ADD app.tar.gz /test
# 将当前目录下复制到容器/test/目录下
COPY app.jar /test # 环境变量,设置一个mysql的常量
ENV MYSQL_VERSION 5.7# 声明容器对外暴露8080端口
EXPOSE 8080

2、Docker镜像编译命令

# 执行当前目录下的Dockerfile中的编译执令,并输出为Docker镜像,名称为-t参数指定的名称
docker build -t 镜像名称 .

五、将官方mysql镜像参数修改后重新构建成新的镜像

1、下载mysql镜像

# 下载mysql5.7官方镜像
docker pull mysql:5.7
# 显示本地的所有镜像
docker images

2、启动镜像

# 启动mysql:5.7镜像,并以名称为“mysql_5.7”的容器运行
# 将容器的3306的端口映射到宿主机的3306端口
# 将容器的/var/lib/mysql(mysql在容器中的数据文件存放目录)
docker run -itd --name mysql_5.7 -p 3306:3306 -v /nfsdata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7# 查看当前系统中正在运行的容器
docker ps -a

3、配置mysql参数

cat > my.cnf << EOF
[client]
default-character-set=utf8mb4[mysql]
port = 3306
default-character-set=utf8mb4[mysqld]
port = 3306
default_storage_engine=InnoDB
datadir = /var/lib/mysql
character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
max_connections = 2000
max_allowed_packet = 128M
innodb_file_per_table = 1
tmp_table_size = 134217728
max_heap_table_size = 134217728lower_case_table_names=1log-bin = mysql-bin
max_binlog_size = 1024M
expire_logs_days = 1
log_slave_updates = 1
server-id = 1sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
EOF

4、将my.cnf上传到mysql_5.7容器中

# 将my.cnf上传到mysql_5.7容器中
docker cp my.cnf mysql_5.7:/etc/my.cnf# 进入容器mysql_5.7的命令行
docker exec -it mysql_5.7 sh
# 查看my.cnf是否修改成功
cat /etc/my.cnf

5、重新构建新的mysql镜像文件

# 停止正在运行中的容器mysql_5.7
docker stop mysql_5.7
# 查看容器mysql_5.7的状态
docker ps -a# 将一个容器进行提交成一个新的镜像副本
# docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG]
docker commit mysql_5.7 hxyl_mysql:5.7
docker images

6、重新启动新的镜像

# 启动hxyl_mysql:5.7镜像,并以名称为“hxyl_mysql_5.7”的容器运行
# 将容器的3306的端口映射到宿主机的3306端口
# 将容器的/var/lib/mysql(mysql在容器中的数据文件存放目录)
docker run -itd --name hxyl_mysql_5.7 -p 3306:3306 -v /nfsdata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 hxyl_mysql:5.7


6、将打包的hxyl_mysql:5.7镜像上传Harbor私仓

说明:
关与Docker镜像私仓Harbor的搭建请参见
微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建

# 登录Harbor私仓
docker login 192.168.2.146# 将hxyl_mysql:5.7上传至Harbor
docker tag hxyl_mysql:5.7 192.168.2.146/pub/hxyl_mysql:5.7
docker push 192.168.2.146/pub/hxyl_mysql:5.7# 退出登录Harbor
docker logout 192.168.2.146


微服架构基础设施环境平台搭建 -(五)Docker常用命令相关推荐

  1. 微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建

    微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建 通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务中心,在此基础之上构 ...

  2. 微服架构基础设施环境平台搭建 -(一)基础环境准备

    微服架构基础设施环境平台搭建 -(一)基础环境准备 通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekin ...

  3. 微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台

    微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台 通过采用微服相关架构构建一套以Kubernetes+Docker为自动化运维基础平台,以微服务为服务 ...

  4. 运维之道 | Docker常用命令、LANM服务器搭建、容器备份迁移

    Docker常用命令.服务器搭建.迁移备份 一.Docker常用命令 1.查看主机docker中的镜像 [root@localhost ~]# docker images REPOSITORY TAG ...

  5. 【docker】docker常用命令总结

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1. Docker概述 2. 虚拟化技术和容器化技术 3. Docker的基本组成 4. Docker的安装 5. Dock ...

  6. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  7. docker常用命令 | game2048网页游戏 | nginx镜像 | 数据卷管理 | docker网络管理 | 构建apache镜像 | Dockerfile常用的命令

    DOCKER https://www.docker.com http://www.runoob.com/docker/docker-command-manual.html docker命令大全 镜像用 ...

  8. 扫盲 docker 常用命令

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/xuan_lu/article/details/119700854 一.docker常用命令 do ...

  9. Docker实战第二天(Docker常用命令详解)

    Docker常用命令 docker version #查看版本 docker search centos #搜索可用的docker镜像 docker images #查看当前docker所有镜像 do ...

最新文章

  1. 开发安卓app游戏_游戏陪玩系统APP开发平台
  2. OVS DPDK--virtqueue(十七)
  3. 基于shell脚本比较数字大小
  4. Spring-WebApplicationContext解读
  5. 保持用户处于登录状态,加速应用程序启动
  6. oracle odbc 设置_Oracle删除不干净怎么办?
  7. matlab som聚类算法,使用SOM对数据进行聚类
  8. 【Python CheckiO 题解】Days Between
  9. 免费2款标注工具实操(内含下载链接)
  10. HBase: 看上去很美
  11. Python:笨方法学 Python3-课程 41 笔记
  12. QT 如何在背景图中将部分区域设置为透明
  13. 20sccm_SCCM安装及配置过程总结
  14. 一个简单的多线程实现
  15. C语言报错警告合集(转)
  16. bind mysql web_bind智能DNS + bindUI管理系统(mysql + bind dlz)
  17. Android手机如何修改DPI触发平板模式
  18. 简述数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型
  19. java 回车表示_关于JAVA中回车符的认识
  20. 帆软报表FineReport学习实践

热门文章

  1. iOS app测试版发布方案TestFlight
  2. chai断言库学习-API(expect部分)
  3. 浅谈provide与inject
  4. 8253(8254)计时/计数器简介
  5. 运行systeminfo时出现闪退现象
  6. 【数据分析】黑色星期五(代码2)销售额分析1、2
  7. Java中两个字符串进行大小比较
  8. mysqladmin的用法简介
  9. yolo模型是什么神经网络,yolo是卷积神经网络吗
  10. python获取小图在大图中的坐标和相似度