#安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

yum install -y yum-utils device-mapper-persistent-data lvm2

#使用以下命令来设置稳定的仓库

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

#安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:

sudo yum -y install docker-ce docker-ce-cli containerd.io

2.2设置ustc的镜像

vim /etc/docker/daemon.json

{
"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

2.3docker的启动与停止
启动:
systemctl start docker

停止:
systemctl stop docker

重启:
systemctl restart docker

开机自动启动:
systemctl enable docker

查看docker概要信息
docker info

查看docker帮助文档
docker --help

3.0 docker常用命令
查看镜像
docker images

搜索镜像
docker search 镜像名称

拉取镜像
docker pull 镜像名称
docker pull centos:7(下载centos7)

删除镜像
docker rmi 镜像ID

删除所有镜像
docker rmi `docker images -q` (特殊引号,不是单引号)

3.2容器相关命令
查看正在运行的容器
docker ps

查看所有容器
docker ps -a

查看最后一次运行的容器
docker ps -l

查看停止的容器
docker ps -f status=exited

3.2.2创建与启动容器

创建容器:docker run
-i:表示运行容器

-t:表示容器启动后会进入其命令行,加入这两个参数后,容器创建就能登录进去,即分配一个伪终端

--name:为创建的容器命名

-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意,最好做目录映射,在宿主机上做修改,然后共享到容器上

-d:在run后面加上-d参数,则会创建一个守护式容器再后台运行(这样创建容器后不会自动登录容器,如果只加-i,-t两个参数,创建后就会自动进去容器)

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口

(1)交互式方式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
这时我们通过ps命令查看,发现可以看到启动的容器,状态为启动状态
退出当前容易:exit

(2)守护式方式创建容器
docker run -di --name=容器名称 镜像名称:标签

登录守护式容器方式:
docker exec -it 容器名称(或者容器ID) /bin/bash

3.2.3停止与启动容器

停止容器:
docker stop 容器名称(或者容器ID)

启动容器:
docker start 容器名称(或者容器ID)

3.2.4 文件拷贝
如果我们需要将文件拷贝到容器内,可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录

也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录

3.2.5 目录挂载
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器
创建容器 添加-v参数 后边为 宿主机的目录:容器目录,例如:
docker run -id -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7

如果你共享的是多级的目录,可能会出现权限不足的提示。
这是因为Centos7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载的目录没有权限的问题

3.2.6 查看容器IP地址
我们可以通过以下命令查看容器运行的各种数据
docker inspect 容器名称(或容器ID)

也可以直接执行下面的命令直接输出IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(或容器ID)

3.2.7删除容器
docker rm 容器名称(或容器ID)

4 应用部署

4.1 mysql部署
(1)拉取mysql镜像
docker pull centos/mysql-57-centos7

(2)创建容器
docker run -id --name=my_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL——ROOT——PASSWORD 是root用户的登录密码

(3)进入mysql容器
docker exec -it my_mysql /bin/bash

(4)登录mysql
mysql -u root -p

(5)远程登录mysql

端口:33306(定义的端口号)

4.3 Nginx部署
(1)拉取镜像
docker pull nginx

(2)创建Nginx容器
docker run -id --name=my_nginx -p 8001:80 nginx
【-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf】
【-v $PWD/logs:/var/log/nginx】
【-v $PWD/html:/usr/share/nginx/html】


4.4 Redis部署
(1)拉取镜像
docker pull redis:5.0

(2)创建Redis容器
docker run -id --name=my_redis -p 63790:6379 redis:5.0

(3)使用外部机器连接redis
./redis-cli.exe -h 【IP】 -p 63790

docker基本操作和部署的更多相关文章

  1. Docker Swarm从部署到基本操作

    关于Docker Swarm Docker Swarm由两部分组成: Docker集群:将一个或多个Docker节点组织起来,用户就能以集群的方式进行管理: 应用编排:有一套API用来部署和管理容器: ...

  2. docker基本操作及介绍

    Docker 简介 Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现.项目后来加入了 Linux ...

  3. 将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定

    1.前言 前段时间,自己搞了个阿里云的服务器.想自己在上面折腾,但是不想因为自己瞎折腾而污染了现有的环境.毕竟,现在的阿里云已经没有免费的快照服务了.要想还原的话,最简单的办法就是重新装系统.而一旦重 ...

  4. 基于Jenkins,docker实现自动化部署(持续交互)

      前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此 ...

  5. Docker Compose 一键部署LNMP

    Docker Compose 一键部署LNMP 目录结构 [root@localhost ~]# tree compose_lnmp/ compose_lnmp/ ├── docker-compose ...

  6. Docker Compose 一键部署Nginx代理Tomcat集群

    Docker Compose 一键部署Nginx代理Tomcat集群 目录结构 [root@localhost ~]# tree compose_nginx_tomcat/ compose_nginx ...

  7. Docker Compose 一键部署多节点爬虫程序

    Docker Compose 一键部署多节点爬虫程序 目录结构 [root@localhost ~]# tree compose_crawler/ compose_crawler/ ├── cento ...

  8. Docker Overlay 应用部署

    Docker Overlay 部署条件 要想使用Docker原生Overlay网络,需要满足以下任意条件: 1.Docker运行在Swarm模式 2.使用键值存储的Docker主机集群 本次部署使用键 ...

  9. Docker Macvlan 应用部署

    Docker Macvlan 应用部署 MacVLAN有两种桥接模式 Bridge模式:不创建子接口的情况下直接去桥接物理接口.直接桥接到与宿主级的同网段. VLAN Bridge模式:创建子接口去桥 ...

随机推荐

  1. 原型和原型链 prototype和proto的区别

    原型 原型是function对象下的属性,它定义了构造函数的共同祖先,也就是一个父子级的关系,子对象会继承父对象的方法和属性 prototype是函数下的属性,对象想要查看原型使用隐式属性__Prot ...

  2. Systemverilog MCDF寄存器描述

    前三个寄存器是读写寄存器(控制寄存器) (一)地址0x00 :32bit bit[0]通道使能,1打开,0关闭.复位1. bit[2:1]优先级,0最高 bit[5:3]数据包长度,是解码对应的. 0 ...

  3. 通过CSS设计模式搭建自己系统的CSS架构

    theme: qklhk-chocolate 传统的CSS书写风格是随意命名,堆叠样式,造成了混乱不堪的结果,复杂页面的样式书写通常会出现几百行甚至上千行的代码,CSS设计模式在实际应用中的横空出世拯 ...

  4. Mybatis基础使用方法

    1.首先在数据库中建立一张表 create table login( name varchar(20) not null, username varchar(20) not null, passwor ...

  5. FPGA最全科普总结

    FPGA最全科普总结   FPGA 是可以先购买再设计的"万能"芯片.FPGA (Field Programmable Gate Array)现场可编程门阵列,是在硅片上预先设计实 ...

  6. HiCar技术概述

    HiCar技术概述 HUAWEI HiCar(以下简称 HiCar)是华为提供的人-车-家全场景智慧互联(HUAWEI HiCar Smart Connection)解决方案,具备如下特点: 安全交互 ...

  7. Vue packages version mismatch的解决方法 初来乍到,踩坑日常

    初来乍到,踩坑日常 这个问题也是我也是接受别人项目,出现的问题,在下载好依赖后运行的时候报这样的错误 它上面显示两个版本一个vue的版本,一个vue-template-compiler版本,我这边忘了 ...

  8. 深入理解java虚拟机笔记Chapter3-内存分配策略

    内存分配策略 新生代和老年代的 GC 操作 新生代 GC 操作:Minor GC 发生的非常频繁,速度较块. 老年代 GC 操作:Full GC / Major GC 经常伴随着至少一次的 Minor ...

  9. 狂神说redis笔记(三)

    八.Redis.conf 容量单位不区分大小写,G和GB有区别 可以使用 include 组合多个配置问题 网络配置 日志 # 日志 # Specify the server verbosity le ...

  10. Docker与k8s的恩怨情仇(一)—成为PaaS前浪的Cloud Foundry

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 大家在工作中或许或多或少都接触过Docker,那你知道Docker以及容器化背后的原理到底是什么吗? 容器化 ...