Docker的使用

一、docker介绍

​ Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 ——摘自百度百科

​ Docker官网:https://www.docker.com/

二、docker安装

1、dockerHub

​ DockerHub地址:https://hub.docker.com/

​ DockerHub上面有着docker官方提供的一些容器样例,下面以redis为例:

image-20200110135905586

​ 直接搜索redis,一般来说最上面的都是官方的镜像,其他的都是非官方开源的版本;点进去

image-20200110140342431

​ 这里面有介绍(Description),有评论(Reviews)以及标签(Tags),这里面会有一些官方提供的教程

2、安装docker

不同操作系统安装对于安装docker的方式都不一样

windows:在docker官网下载安装文件:https://hub.docker.com/?overlay=onboarding

Mac:在docker官网下载安装文件或者用homebrew命令安装:

brew cask install docker

Linux:利用yum安装

#更新源
yum update

#安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2

#设置yum源(选择其中一个)
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)

#查看可安装的docker版本
yum list docker-ce --showduplicates | sort -r

#选择版本进行安装
yum install docker-ce-18.03.1.ce (貌似我当初安装只执行了yum install docker)

#启动
service docker start

#开机启动
systemctl enable docker

3、docker相关命令

#检查版本
docker —-vsersion  

#查看镜像
docker images

#删除
images:docker rmi <image id>

#查看运行中的容器
docker ps (-a代表查看全部)

#运行
docker run -d(后台运行) -p(暴露端口) —name xxx(起个名字) -e(添加参数) -u(用户) id(镜像id)

#停止
docker stop id(容器id)

#重启
docker start(restart) id

#删除
docker rm id(容器id)

#进入到容器内部
docker exec -it 75310e169cb0(容器id/或者容器名称) /bin/bash

#查看信息:
docker inspect nexus

三、docker部署容器

1、Portainer

portainer是一个docker可视化项目,可以在UI控制台管理docker镜像容器

#拉取镜像
docker pull portainer/portainer

#运行
docker run -d 
-p 9000:9000 
--restart=always 
-v /var/run/docker.sock:/var/run/docker.sock 
--name prtainer
portainer/portainer

运行之后访问http://ip:9000访问,首次登录需要配置一下,(忘记怎么操作的了,比较简单,网上搜一下即可)

进入后界面如下所示:

image-20200110143130528

2、Redis

#拉取镜像
docker pull reids

#创建需要挂载的文件夹
mkdir -p /docker/redis/conf  /docker/redis/data

#运行
docker run 
-d                   #后台运行
-p 16379:6379        #外部的16379映射到内部的6379
--restart always     #自动重启
-v /docker/redis/conf/redis.conf:/etc/redis/redis.conf #映射配置文件
-v /docker/redis/data:/data                            #映射数据目录 
--name redis         #指定容器名称
redis                #镜像名称
redis-server /etc/redis/redis.conf #以配置文件启动
--appendonly yes     #持久化

3、RabbitMQ

#拉取镜像
docker pull rabbitmq

#启动
docker run 
-d 
--name rabbitmq 
-p 15672:15672    #管理控制台端口
-p 5672:5672 
--hostname 
my_rabbitmq e8261c2af9fe
(-e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password 可选)
    -e指定参数,如果不指定,rabbit默认用户名guest,密码guest

4、ElasticSearch

#拉取镜像
docker pull elasticsearch:5.5.1

#启动
docker run -d --name es -p 9200:9200 -p 9300:9300  4255fc97fa5f
#Es启动需要2g堆内存空间,防止不足,加上参数:-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"

5、Mysql

#拉取镜像
docker pull mysql

#启动
docker run 
--name mysql 
-e MYSQL_ROOT_PASSWORD=123456  #指定root账户密码
-p 3306:3306 
-d f991c20cb508

6、Jenkins

#拉取镜像
docker pull jenkins/jenkins:lts

#创建挂载文件夹
mkdir /usr/local/jenkins

#运行
docker run 
-u root 
-d 
-p 8090:8080 
-p 50000:50000 
-v /usr/local/jenkins:/var/jenkins_home 
--name jenkins 806f56c84444

#jenkins首次登录需要密码,默认初始密码可以查看
cat /usr/local/jenkins/secrets/initialAdminPassword(查看初始密码)