一、Docker安装


Docker在主流的操作系统和云平台上都可以使用,包括Linux操作 系统(如Ubuntu、Debian、CentOS、Redhat等)、MacOS操作系统和 Windows操作系统,以及AWS等云平台。

Docker官网

 https://docs.docker.com/

1. 卸载历史版本

# 查看安装yum list installed | grep docker# 卸载 (如果没有安装过,直接跳过卸载步骤)yum -y remove containerd.io.x86_64yum -y remove docker-ce.x86_64yum -y remove docker-ce-cli.x86_64# 删库rm -rf /var/lib/docker

2. 安装官方yum源

# 安装utils,config-manager在utils中yum install -y yum-utils   # 安装官方yum源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo


3. 安装Docker引擎

# 安装Docker引擎yum install -y docker-ce docker-ce-cli containerd.io

4. 启动docker

# 开机启动systemctl enable docker
# 启动systemctl start docker
# 查看Docker状态docker info

二、Docker操作


1. 使用Docker镜像

1.1 获取镜像

命令:

 docker pull NAME[:TAG] (如果tag不指定,则默认拉取最新的镜像)

Dockerhub:镜像的公共库

 描述一个镜像需要包括“名称+标签”信息

网址:https://hub.docker.com/

 可以选择注册一个账户不注册也可以进行镜像的拉去操作,但是不能上传

例如:

 docker pull mysql:5.7.30

注意:

 如果不显式指定TAG,则默认会选择latest标签,这会下载仓库中最新版本的镜像。镜像的仓库名称中还应该添加仓库地址(即registry,注册服务器)作为前缀,默认使用的是DockerHub服务,该前缀可以忽略完整的命令格式:docker pull registry.hub.docker.com/mysql:5.7.30如果从非官方的仓库下载,则需要在仓库名称前指定完整的仓库地址
1.2 查看镜像信息

命令:

 docker images

可以通过man docker-images查看更多命令参数

1.3 添加镜像标签

命令:

 docker tag [原镜像名:tag号] [目标镜像名:tag号]     # 如果tag号缺省,默认latest

例如:

 docker tag mysql:5.7.30 mysql5

其实就是相同的一个image,设置了两个tag

1.4 查看镜像详细信息

命令:

 docker inspect NAME[:TAG]返回的是一个JSON格式的消息,如果我们只要其中一项内容时, 可以使用参数-f来指定

例如:

 docker inspect mysql:5.7.30

查看具体参数:

 docker inspect mysql:5.7.30 -f  {{".属性名称"}}

1.5 搜寻镜像

命令:

 docker search 名称

注意:

 dockerhub仓库镜像, 私有仓库无法搜索到
1.6 删除镜像

命令:

 docker  rmi  NAME[:TAG]

例如:

 docker rmi mysql:5.7.30docker rmi mysql5:latest

使用镜像ID删除镜像

 docker pull nginx

注意:

 如果有容器正在运行该镜像,则不能删除如果想强行删除用 -f (不推荐)
1.7 上传镜像

命令:

 docker push NAME[:TAG]

注意:

 上传镜像到仓库,默认上传到Docker Hub官方仓库(需要登录)

2. 操作Docker容器

2.1 创建容器

命令:

 docker create NAME[:TAG]可以加选项参数-i 交互模式-t 伪终端-d 后台运行-rm 容器退出后是否自动删除

例如:

 docker create -it nginx

2.2 启动容器

命令:

 docker start 容器id

例如:

 docker  start  0ab5ef79b786

2.3 查看容器状态

命令:

 docker ps 查看运行的容器

查看运行的容器

 docker ps

查看所有容器

 docker ps -a

2.4 新建并启动容器

命令:

 docker run NAME[:TAG]相当于 docker create + docker start可以加选项参数--network host 使用宿主机IP地址man docker rundocker run --help

例如:

 docker run -it --rm --network host  nginx--rm  容器停止后自动卸载--it  交互式--network host  容器ip地址和宿主机ip地址一样

ctrl+c退出,容器停止,因为配置了rm,因此容器被移除

2.5 终止容器

命令:

 docker stop 容器id -t 时间 (默认10秒)首先向容器发送SIGTERM信号,等待一段超时时间(默认为10 秒)后,再发送SIGKILL信号来终止容器docker kill 容器iddocker kill 命令会直接发送SIGKILL信号来强行终止容器

例如:

 # 后台 启动容器docker run -it --rm -d --network host  nginx # -t  定时5s后关闭容器docker stop 5c1ba38c3a45  -t 5 # 强制终止容器    docker kill 5c1ba38c3a45

处于终止状态的容器,可以通过docker start命令来重新启动

 docker start ce554267d7a4

docker restart命令会将一个运行态的容器先终止,然后再重新启动

 docker restart 090d67f05011

2.6 进入容器

命令:

 docker exec -it [容器ID] /bin/bash早期有attach命令,对于阻塞命令会等待,所以不方便在Docker 1.3.0后提供了exec 可以在容器内直接执行任意命令

例如:

 docker exec -it 090d67f05011 /bin/bash

无论在容器内进行何种操作,依据依据镜像创建的其他容器都不会受影响(由于namespace的隔离)(将数据持久化的除外) exec: 容器执行某操作,操作为容器ID后边的命令 -it: 以伪终端模式,这样我们就相当于进入到容器中了

2.7 查看容器

命令:

 docker inspect [容器ID]

命令:

 docker stats [容器ID]

2.8 删除容器

命令:

 docker rm [容器ID]

docker rm命令只能删除处于终止或退出状态的容器,并不能删除还处于运行状态的容器
要直接删除一个运行中的容器,可以添加-f参数。Docker会先 发送SIGKILL信号给容器,终止其中的应
用,之后强行删除


3. 访问Docker仓库

Docker Hub是最大的公共镜像仓库(https://hub.docker.com/)
在公共仓库中注册一个账号,每ID可以免费拥有1个私有镜像

3.1 登录仓库

docker login -u username -p password
默认登陆的是docker hub

 [root@localhost ~]# docker login -u 账号  -p  密码WARNING! Using --password via the CLI is insecure. Use --password-stdin.WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded

登录成功的用户可以上传个人制造的镜像。

用户无需登录即可通过docker search命令来查找官方仓库中的镜 像,并利用docker pull命令来将它下载到本地

3.2 登出仓库

docker logout
可以同时登陆多个docker仓库,因此此命令一般不执行

 [root@localhost ~]# docker logoutRemoving login credentials for https://index.docker.io/v1/
3.3 认证文件

Mac/Win机器上的是隐藏密码的,但是在Linux下是显示密码的,只不过进行了base64编码, 只要拷贝
此文件到其他机器指定目录下(/root/.docker/config.json)即可免登录

 {"auths": {"https://index.docker.io/v1/": {"auth": "Z2F2aW5saTgwczpsanAxMjM0NjU="}},"HttpHeaders": {"User-Agent": "Docker-Client/19.03.12 (linux)"}}

4. 常用软件的容器化部署

4.1 Mysql

新建并启动mysql容器

 docker pull mysql:5.7.30  # 拉取镜像操作可以省略docker run  --network host  -e MYSQL_ROOT_PASSWORD=root -d --rm mysql:5.7.30# 参数--network host : 宿主机IP 不能再使用端口映射 -p 宿主机端口:容器端口 只能使用容器端口--rm:当容器停止后,对容器及其申请的卷执行删除操作-e key=value: 指定环境变量(此处指定了mysql root密码的环境变量,密码为root)-d :后台运行

访问MySQL

 mysql -h192.168.80.60 -uroot -proot


4.2 Tomcat

新建并启动Tomcat容器

 docker pull tomcat:8.5.56-jdk8-openjdk      # 拉取镜像操作可以省略(这是一个带着jdk的tomcat)docker run -it --rm --network host tomcat:8.5.56-jdk8-openjdk-it : 交互式伪客户端--rm:当容器停止后,对容器及其申请的卷执行删除操作--network host:宿主机IP

访问tomcat,报错,找不到资源(因为此时安装的Tomcat没有提供默认 的欢迎页面)

浏览器访问也访问不到默认的欢迎页面

解决:进入到容器中,创建项目

 进入到运行中的容器:tomcat:8.5.56-jdk8-openjdk创建项目目录:webapps创建测试项目:dabing-project在测试项目中创建欢迎页面:index.html访问测试项目中的欢迎页面


4.3 Nginx

新建并启动Nginx容器

 docker pull nginx         # 拉取镜像操作可以省略docker run --name nginx1  --network host -d nginx--name:运行的容器名称

访问nginx


4.4 Redis

新建并启动Redis容器

 docker pull redis:5.0.9docker run  --network host -d redis:5.0.9

访问Redis

注意:

 如果宿主机也运行着redis,容器中的redis将无法启动,因为6379端口被占用了

解决:

 将容器的6379端口转换成其他端口,就不会造成端口冲突了


5. Docker命令图谱

Docker容器虚拟化技术---Docker安装和操作1相关推荐

  1. Docker容器虚拟化技术---Docker运维管理(Docker Compose)4

    Docker容器虚拟化技术-Docker运维管理(Docker Compose)4 Docker Compose 通过前面的讲解我们知道使用一个Dockerfile模板文件,可以很方便地定义一个单独的 ...

  2. Docker容器虚拟化技术---Docker高级实战(DockerFile)2

    Docker容器虚拟化技术-Docker高级实战(DockerFile) DockerFile是一个文本格式的配置文件,用户可以使用DockerFile来快速创建自定义的镜像. 1. DockerFi ...

  3. Docker容器虚拟化技术---Docker运维管理(Swarm集群管理)3

    Docker容器虚拟化技术-Docker运维管理(Swarm集群管理)3 Swarm集群管理 docker swarm是docker官方提供的一套容器编排系统,是Docker公司推出的官方容器集群平台 ...

  4. 实战:Docker容器虚拟化技术(使用DockerFile构建镜像并搭建 swarm+compose集群)5

    实战:Docker容器虚拟化技术 (使用DockerFile构建镜像并搭建 swarm+compose集群)5 要求: 使用DockerFile构建镜像并搭建 swarm+compose集群 在Swa ...

  5. 容器虚拟化技术Docker(一)简介、安装、常见命令、数据卷、安装常规软件

    容器虚拟化技术Docker(一)简介.安装.常见命令.数据卷.安装常规软件 1.Docker简介 1.简介 Docker的主要目标是"Build,Ship and Run Any App,A ...

  6. docker容器虚拟化技术_Docker,虚拟机和容器的全面介绍

    docker容器虚拟化技术 by shota jolbordi 通过Shota Jolbordi Docker has been a buzzword for tech people for the ...

  7. Docker——容器虚拟化技术

    目录 一.Docker介绍 诞生背景 Docker介绍 虚拟机技术与容器虚拟化技术 虚拟机技术 容器虚拟化技术 官方网站 二.Docker安装 安装Docker Docker管理命令 Docker底层 ...

  8. Docker技术( 容器虚拟化技术 )

    Docker--容器虚拟化技术 第一章 Docker介绍 诞生背景 Docker 介绍 虚拟机技术与容器虚拟化技术 虚拟机技术 容器虚拟化技术 官方网址 第二章 Docker安装 前提条件 安装Doc ...

  9. 容器化技术Docker由入门到实战

    目录 对docker的理解 能做什么 传统虚拟机 容器虚拟化技术 Docker 和传统虚拟化方式的不同之处 Docker的安装 前置环境 Vagrant虚拟机环境 ​编辑使用Vgrant安装虚拟机 虚 ...

最新文章

  1. LINUX应用修改硬件寄存器l,郝健: Linux内存管理学习笔记-第2节课【转】
  2. 服务器反馈为空,反馈服务器端error的处理
  3. ORM之SQLAlchemy
  4. ubuntu openstack spice
  5. python多分支结构实例_JS优化多分支结构(经典)
  6. HTML判断如果并且,将html转换为js,并且其中含有判断语句
  7. 内核参数 linux dd,Linux dd 命令详解(测磁盘的吞吐量)
  8. c语言退格键ascii码,【回车键的ASCII码是多少】
  9. ApiPost简单的接口测试教程
  10. PcShareVIP弄来的免杀思路
  11. 一元三次方程求解C/C++
  12. 程序员面试指南 - 自我介绍
  13. 人工智能产品普及的今天,软件测试人员也在自我进化
  14. Android平台所支持的API级别
  15. linux 文件名带日期,在linux中追加日期到文件名
  16. 基于arduino的幻尔总线机器人
  17. linux下Found a swap file by the name解决
  18. 联邦学习基本算法FedAvg的代码实现
  19. 国标28181:接收设备注册
  20. Aspose.Words开发者指南

热门文章

  1. Apache中限制和允许特定IP访问
  2. 解放计算给服务带来的压力,第一想到的就是阿里云高性能计算(HPC)
  3. 什么样的网站建设公司才是值得信赖的?
  4. Android访问数据库(SQL Server 和 MySQL)
  5. DevExpress GridView 添加和设置右键菜单
  6. 在路由器与交换机之间添加ISA Server软路由与防火墙
  7. SQL Server批量插入数据
  8. 初窥wordcloud之老司机带你定制词云图片
  9. 每日英语:The Invasion of the Online Tutors
  10. JQuery URL的GET参数值获取方法