Docker安装与使用

299 阅读4分钟

Docker是什么?

Docker是一个开源的容器引擎,它有助于更快地交付应用。
Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。
使用Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运> 行代码的周期。

Docker有什么用?

Docker 可以简化部署多种应用实例工作。

安装Docker

环境:CentOS 7

  # 如果安装有老版本卸载命令
  yum remove docker docker-common docker-selinux docker-engine
  # 安装依赖
  sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  #  设置yum源  
  sudo yum-config-manager --add-repo   https://download.docker.com/linux/centos/docker-ce.repo
  sudo yum install docker-ce
  • 启动并加入开机启动项

  # 启动
  sudo systemctl start docker
  #开启开机自启
  sudo systemctl enable docker

  sudo systemctl status docker
  sudo systemctl restart docker
  sudo systemctl stop docker

  • 删除Docker

  yum remove docker docker-common docker-selinux docker-engine  -y
  /etc/systemd -name '*docker*' -exec rm -f {} ;
  find /etc/systemd -name '*docker*' -exec rm -f {} \;
  find /lib/systemd -name '*docker*' -exec rm -f {} \;

国内源配置

+ https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

Docker中基本概念

  • 仓库(Repository):

  • 镜像(Image):

    • 镜像操作

    #查看已经下载的镜像
    docker  images 
    #查询镜像
    docker search [镜像名称]
    #拉取下载镜像
    docker pull  [镜像名称]
    #删除镜像
    docker rmi  [镜像ID]
    #删除所有镜像 , 注:docker images -q 查询到所有的镜像ID 
    docekr rmi `docker images -q` 
    
    
  • 容器(Container):

    • 容器操作

    #查看容器   注:a all  所有的容器  l  last  最后一次运行的容器  
    #不加任何命令默认查看运行中的容器
    docker  ps  [-a   |   -l] 
    # 容器和宿主机间copy资源
    
    docker cp [CONTAINER ID]:[镜像中的资源路径] [宿主机路径]
    
    
    #创建交互式(前台运行)容器
    docker run -i -t --name=[自定义名称] [REPOSITORY]:[TAG]
    
    #开启容器
    docker start [NAMES]
    #关闭容器
    docker stop [NAMES]
    # 关闭所有容器
    docker stop $(docker ls -a -q)
    # 删除容器
    docker rm [CONTAINER ID]
    # 删除所有容器
    docker rm $(docker ls -a -q)
    
    • 容器运行

    #创建守护式(后台运行)容器
    docker run -i -d --name=[自定义名称] [REPOSITORY]:[TAG]
    
    #通过守护式容器进入交互
    docker exec -it [自定义的名称]  /bin/bash
    
    

    image.png

    • 容器修改

    docker commit  c8fab84eb9c8  learn/ping
    

    c8fab84eb9c8:前一步查询到的ID learn/ping: 用户名/镜像名

安装Nginx

  • 安装 Nginx

docker pull nginx

镜像文件位置说明 1、配置位置

/etc/nginx/conf.d
/nginx/nginx.conf

2、日志位置

/var/log/nginx

3、静态网页位置

/usr/share/nginx/html

Docker 安装 Mysql

  • 搜索mysql镜像

docker search mysql
  • 拉取mysql镜像

下载镜像(如上一步,可以指定想要的版本,不指定则为最新版)

docker pull mysql
  • 创建挂载目录

在主机上创建目录,进入该目录,
例如在/usr/local下创建docker_mysql

<!--数据挂载存储目录-->
mkdir -p /usr/local/docker_mysql/data
<!--日志挂载存储目录-->
mkdir -p /usr/local/docker_mysql/logs
  • 运行mysql镜像

docker run -p 3306:3306 --name mymysql -v /usr/local/docker_mysql/logs:/logs -v /usr/local/docker_mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
  • -v /usr/local/docker_mysql/logs:/logs:将主机 /usr/local/docker_mysql/logs目录挂载到容器的 /logs。
  • -v /usr/local/docker_mysql/data:/var/lib/mysql :将主机 /usr/local/docker_mysql/data目录挂载到容器的 /var/lib/mysql 。
  • -e MYSQL_ROOT_PASSWORD=12345678:初始化 root 用户的密码。
  • mysql配置

    • 进入容器

    <!--62349aa31687 为容器ID 根据 docker ps 查询到-->
    docker exec -it 62349aa31687 /bin/bash
    
    • 配置数据库

    <!--链接数据库 输入刚刚给出的初始密码-->
    mysql -uroot -p
    <!--授权-->
    mysql> GRANT ALL ON *.* TO 'root'@'%';
    <!--刷新权限-->
    mysql> flush privileges;
    <!--更新加密规则-->
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
    <!--更新root用户密码-->
    mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '12345678';
    <!--刷新权限-->
    mysql> flush privileges;
    

Docker运行elasticsearch和kibana

  • 拉取镜像

docker pull elasticsearch:6.8.5
docker pull mobz/elasticsearch-head:5-alpine
docker pull kibana:6.8.5
  • 在容器中运行

docker run -it --name elasticsearch -d -p 9200:9200 -p 9300:9300 -p 5601:5601 elasticsearch:6.8.5
docker run -it -d -e ELASTICSEARCH_URL=http://127.0.0.1:9200 --name kibana --network=container:elasticsearch kibana:6.8.5
docker run -it --name elasticsearch-head -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5-alpine
  • 测试访问

http://localhost:5601 看到如下页面说明环境搭建完成

kibala管理页面

Docker拉取运行nacos-server

  • 拉取镜像

docker pull nacos/nacos-server
  • 在容器中运行

docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server
  • 测试可用性

访问 http://[你的IP]/nacos/index.html 初始账户密码均为 nacos

参考资料