1、简介

Docker是一个开源的应用容器引擎;是一个轻量级容器技术;

Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;

运行中的这个镜像称为容器,容器启动是非常快速的。

2、核心概念

docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);

docker客户端(Client):连接docker主机进行操作;

docker仓库(Registry):用来保存各种打包好的软件镜像;

docker镜像(Images):软件打包好的镜像;放在docker仓库中;

docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

3、安装Docker

3.1 检查内核版本,必须是3.10及以上

uname -r 

3.2 使用 root 权限登录 Centos。确保 yum 包更新到最新(不然运行会报错)

yum update

3.3 安装依赖

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

3.4 安装docker

yum install docker

3.5 查看docker版本

docker version

3.6 启动docker

systemctl start docker

3.7 设置docker开启启动

systemctl enable docker

3.8 关闭docker

systemctl stop docker

3.9 测试安装效果

Docker的简单运用---Hello World
将名为 hello-world 的 image 文件从仓库抓取到本地。

docker pull library/hello-world

运行

docker run hello-world

正确的效果:

4、Docker常用命令&操作

4.1 镜像操作

https://hub.docker.com/

4.2、容器操作(安装mysql为例)

  1. 搜索镜像

    docker search mysql
  2. 拉取镜像(下载)

    docker pull mysql    若需要选择版本则如:    docker pull mysql:8.0
  3. 启动(做了端口映射)

     docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql ---------- mysql02:设置的容器名称,可自行设置。 -p:将容器内部使用的网络端口映射到我们使用的主机上。 -d:让容器在后台运行 设置 root 用户默认密码是 123456
  4. 进入容器

    docker exec -it 容器ID /bin/bash 
  5. 登录mysql

       mysql -uroot -p123456
  6. mysql远程登录相关

      Navicat 远程连接报错:  进行授权远程连接(注意mysql 8.0跟之前的授权方式不同)   授权           GRANT ALL ON *.* TO 'root'@'%';   刷新权限           flush privileges   此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则   更改加密规则             ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;   更新root用户密码             ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';   刷新权限             flush privileges;                OK,设置完成,再次使用 Navicat 连接数据库
  7. 其他容器常用命令:

        1.查看运行中的容器       docker ps      2. 停止运行中的容器       docker stop  容器的id            3.查看所有的容器       docker ps -a     4.启动容器       docker start 容器id     5.删除一个容器       docker rm 容器id     6.查看容器的日志       docker logs container-name/container-id     7.查看容器的日志       docker logs container-name/container-id     8.更多命令参看       https://docs.docker.com/engine/reference/commandline/docker/

4、卸载docker

yum remove docker \                  docker-client \                  docker-client-latest \                  docker-common \                  docker-latest \                  docker-latest-logrotate \                  docker-logrotate \                  docker-selinux \                  docker-engine-selinux \                  docker-engine