docker卸载
# 卸载软件
sudo yum remove docker-ce docker-ce-cli containerd.io
# 手动删除包含docker的目录
# 查看包含docker的文件夹
find / -name docker
# 删除找到的docker文件
rm -rf xxxxx
docker安装使用
#1. 安装之前设置docker拉取的仓库镜像
## 阿里云的镜像仓库地址
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
## 清华大学源
sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
## 上述两种镜像 二选一
# 2. 安装docker服务
## 安装最新版本的docker
sudo yum install docker-ce docker-ce-cli containerd.io
## 列出可用docker版本 在指定版本安装
yum list docker-ce --showduplicates l sort -r
sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io
# 启动docker
sudo systemctl start docker
# 验证docker启动
sudo docker run hello-world
上述命令docker安装完成后会在服务器上安装了对应的docker服务端和docker客户端。
docker命令
#输入 docker 会列出docker所用可用命令
[root@iZ2ze505h9bgsa1t9twojyZ /]# docker
# 查看某个命令详细用法
docker ${commondName} --help
## 查找镜像(根据镜像名)
#docker search ${imageName}
docker search mysql
## 拉取镜像 不添加tag则拉取最新版本的镜像
docker pull [OPTIONS] NAME[:TAG]
docker pull mysql:5.7
## 删除镜像 需要添加-f 强制删除
docker rmi -f [${iamge-name}|${image-id}]
docker rmi -f hello-world
## 查看仓库中拉取的镜像
docker image ls
标签 | 描述 |
---|---|
REPOSITORY | 表示镜像的仓库源 |
TAG | 镜像的标签 相当于版本 |
IMAGE ID | 镜像ID |
CREATED | 镜像创建时间 |
SIZE | 镜像大小 |
docker容器管理
#docker run :创建一个新的容器并运行
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# docker启动一个mysql服务
# 名字为msql-master -d 后台启动 -p指定服务器的3310作为容器的3310端口
# -v 为服务创建存储目录 -t -i 交互模式运行容器
docker run --name mysql-master -d -p 3310:3310 -v/usr/local/mysql/data:/mysql/data -t-i mysql:5.7
OPTIONS说明:
# docker 查看所有在运行的容器
docker ps
# docker 查看所有容器(包括已经停止运行的)
docker ps -a
# 停止容器
# stop 优雅停止
docker stop [OPTIONS] CONTAINER_ID [CONTAINER_ID...]
# kill 快速杀掉进程
docker kill [OPTIONS] CONTAINER_ID [CONTAINER_ID...]
#docker移除容器
docker rm [${containerId},${containerId2} ...]
默认配置安准
#拉取镜像 tags :表示mysql的 版本比如 5.6 /5.7等等
docker pull mysql:tags
#运行镜像 run运行 --name 设置运行实例名称 -e配置环境变量 -v设置数据卷(程序运行过程产生的数据存在路径以及一些配置信息) -p 宿主端口:docker程序的端口 设置端口映射
docker run --name mysql-master -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 -i -t mysql:5.7
# 查看容器运行情况(会查询全部运行的)
docker ps #查询运行的全部镜像
docker ps -a #查询全部镜像(包含没有运行的)
# 进入容器内部
docker exec -it ${containerId} /bin/sh
# 连接mysql
mysq -uroot -p123456
#退出容器
exit
show master status 查看bin-log日志状态
使用默认配置方式启动的mysql服务,没有开启bin-log日志
指定配置安准
-v descDataDir:srcDataDir: 指定使用宿主地址/home/mysql57/data映射到docker镜像的数据存储路径(/var/lib/mysql)。
-v descConfDir:srcConfDir: 指定使用宿主地址/home/mysql57/conf映射到docker镜像的配置路径(/etc/mysql/)。
#创建存放映射文件夹
mkdir -p /home/mydata/mysql/log
mkdir -p /home/mydata/mysql/data
mkdir -p /home/mydata/mysql/conf
my.cnf配置
在 /home/mydata/mysql/conf配置文件中添加my.cnf配置 添加如下配置
开启了mysql的binlog日志
[mysqld]
server_id=2
log_bin = mysql-bin
binlog_format = ROW
expire_logs_days = 30
my.conf配置
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
## 指定mysql配置和数据存储地址 启动
docker run --name mysql57 -p 3310:3306 -v /home/mydata/mysql/log:/var/log/mysql -v /home/mydata/mysql/data:/var/lib/mysql -v /home/mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
show master status 查看bin-log日志状态,如配置修改一样,binlog日志记录开启
Portainer是Docker的图形化管理工具,其为一个web应用,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。
# 搜索portainer镜像
docker search portainer
# 拉取portainer镜像
docker pull portainer
#运行镜像
# --restart :容器重启策略,always表示在容器退出时总是重启容器
docker run -p 9000:9000 --name protainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -d portainer/portainer
##访问Portainer
http://xxx.xx.xxx.xxx:9000
首次访问需要初始化admin 用户密码信息,登录首页
进入首页,需要配置docker服务的连接地址,笔者的portainer和docker在一台服务器,所以使用Local模式连接docker
docker中对应的镜像,容器,网络配置等信息。
该应用也可以通过页面的形式创建容器,如上通过页面创建了zk服务
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。基于此机制我们可以对官方镜像做扩展或者将生产应用打包成镜像。
dockerfile如何构建一个镜像
dockerfile详细说明
编写Dockerfile文件
通过编写Dockerfile文件来制作Centos镜像,并在官方镜像的基础上添加vim工具。
# 使用centos:7作为基础镜像
FROM centos:7
#设置镜像描述信息
MAINTAINER xieqx <[email protected]>
#配置 /usr/local路径作为变量
ENV MYPATH /usr/local
#进入$MYPATH 变量对应的路径中,即 cd /usr/local
WORKDIR $MYPATH
# 安装vim工具
RUN yum -y install vim
# 暴露访问端口80
EXPOSE 80
# 容器启动的时候运行命令
CMD /bin/bash
构建镜像
mkdir -p /home/docker/
cd /home/docker/
vim Dockerfile
##填写上述配置进入Dockerfile
#构建镜像 镜像名为mycentos 版本1.0
docker build -t mycentos:1.0 .
#查看镜像列表、
docker images
#查看镜像构建过程
docker history 镜像id
启动镜像
#运行 mycentos 镜像
docker run -itd --name my-centos mycentos:1.0
#查看容器运行情况
docker ps
# 进入容器内部 使用vim命令
docker exec -it e2781c127a4b /bin/sh
编写Dockerfile
# jar包基于jdk ,war包基于tomcat
FROM openjdk:8-jre
# 进入目录
WORKDIR /app
#将上下文中 jar包复制到 /app目录下,并且重命名为app.jar
ADD demo-0.0.1-SNAPSHOT.jar app.jar
# 暴露端口
EXPOSE 8089
# 启动应用固定命令
ENTRYPOINT [ "java" , "-jar" ]
# 动态传递jar包名
CMD ["app.jar"]
构建镜像
mkdir -p /home/docker/app/
cd /home/app/docker/
vim Dockerfile
##填写上述配置进入Dockerfile
#构建镜像 镜像名为mycentos 版本1.0
docker build -t myspboot:1.0 .
#查看镜像列表、
docker images
#查看镜像构建过程
docker history 镜像id
启动镜像
#运行 mycentos 镜像
docker run -itd -p 8089:8089 --name my-spBoot myspboot:1.0
#查看容器运行情况
docker ps
# 进入容器内部 使用vim命令
docker exec -it e2781c127a4b /bin/sh