一 安装Docker
1 yum包更新到最新
sudo yum update
2 安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3 设置yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4 安装docker
sudo yum install docker-ce
5 安装后查看docker版本
docker -v
6 设置镜像路径
vi /etc/docker/daemon.json
在该文件中输入如下内容
{
“registry-mirrors”: [“http://hub-mirror.c.163.com”]
}
二 Docker的启动与停止
2.1 启动Docker
systemctl start docker
2.2 停止docker
systemctl stop docker
2.3 重启docker
systemctl restart docker
2.4 查看docker状态
systemctl status docker
2.5 开机自动启动
systemctl enable docker
2.6 查看docker命令
docker --help
三 常用命令
3.1镜像相关的
3.1.1 查看镜像
docker images
3.1.2 搜索镜像
docker search 镜像名称
3.1.3 拉去镜像
docker pull 镜像名:tag
tag 镜像版本号 不写的话,默认最新的
3.1.4 删除镜像
docker rmi 镜像id或者名称
3.1.5 删除所有镜像
docker rmi ‘docker images -q’
3.2 容器相关的
3.2.1 查看正在运行的容器
docker ps
3.2.2 查看所有容器
docker ps -a
3.2.3 查看最后一次运行的容器
docker ps -l
3.2.4创建启动容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
-i 表示运行容器
-t 表示容器启动后进入命令行
–name 为创建的容器命名
-v 表示目录映射关系
-d 创建守护式容器
-p 映射端口
3.2.5 进入容器
docker exec -it 容器名称 /bin/bash
3.2.6 退出容器
容器停止 exit 容器不停止 ctrl+p+q
3.2.7 启动容器
docker start 容器名称或者容器ID
3.2.8 停止容器
docker stop 容器名称或者容器ID
3.2.9 文件拷贝
docker cp 需要拷贝的文件或者目录 容器名称:容器目录
docker cp 容器名称:容器目录 需要拷贝的文件或者目录
3.2.10 目录挂载
docker run -it -v 宿主机目录:容器目录 --name=mycentos centos:7
3.2.11 查看容器IP地址
docker inspect 容器名称(容器ID)
3.2.12 删除容器
docker rm 容器ID(容器名称)
四 Mysql与Docker命令
搜索mysql数据库
docker search mysql
拉去mysql数据库
docker pull mysql:5.7
运行mysql
docker run -it --name=mysqldemo -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
左侧 宿主机开放的端口
右侧 容器开发的端口
进入容器
docker exec -it mysqldemo /bin/bash
登录mysql数据库
mysql -u root -p
远程登录mysql
连接虚拟机ip地址 例如 192.168.180.131 3306
五 tomcat部署
docker search tomcat
docker pull tomcat
docker run -it --name=mytomcat -p 8080:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat
六 nginx部署
docker search nginx
docker pull nginx
docker run -it --name=myngnix -p 80:80 ngnix
七 redis部署
docker search redis
docker pull redis
docker run -di --name=myredis -p 6379:6379 redis
八 迁移与备份
8.1 将容器保存为镜像
docker commit mynginx mynginx_i
8.2 镜像备份
将镜像保存为tar文件
docker save -o mynginx.tar mynginx_i
8.3 镜像恢复与迁移
docker load -i mynginx.tar
-i 输入的文件
执行后查看镜像,可以看到镜像已经恢复
九 Dockerfile
9.1 概念
一系列命令和参数构成的脚本,这些命令应用基础镜像并最终创建一个新的镜像
9.2 常用命令
from image_name:tag 定义了使用哪个基础镜像启动构建流程
maintainer user_name 声明镜像的创建者
env key value 设置环境变量(可以写多条)
run command 是Dockerfile的核心部分(可以写多条)
add source_dir/file dest_dir/file 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压
copy source_dir/file dest_dir/file 和ADD相似,但是如果有压缩文件并不能压缩
workdir path_dir 设置工作目录
9.3 使用脚本创建镜像
FROM centos:7
MAINTAINER xsh
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u221-linux-x64.tar.gz /usr/local/java
ENV JAVA_HOME /usr/local/java/jdk_1.8.0_221
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH
J
A
V
A
H
O
M
E
/
b
i
n
/
d
t
.
j
a
r
:
JAVA_HOME/bin/dt.jar:
JAVAHOME/bin/dt.jar:JAVA_HOME/lib/tools.jar:
J
R
E
H
O
M
E
/
l
i
b
:
JRE_HOME/lib:
JREHOME/lib:CLASSPATH
ENV PATH
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:PATH
需要先下载centos:7镜像
十 Docker 私有仓库
10.1 拉取私有仓库镜像文件
docker pull registry
10.2 启动私有仓库容器
docker run -di --name-registry -p 5000:5000 registry
10.3 打开浏览器
输入地址http://192.168.180.131:5000/v2/_catalog 看到{“repositories”:[]}表示私有仓库搭建成功并且内容为空
10.4 修改daemon.json
vi /etc/docker/daemon.json
添加内容
{“insecure-registries”:[192.168.180.131.5000]}
此步用于让docker信任私有仓库地址
10.5 重启docker服务
systemctl restart docker
十一 镜像上传至私有仓库
11.1 标记此镜像为私有仓库的镜像
docker tag jdk1.8 192.168.180.131:5000/jdk1.8
11.2 再次启动私服容器
docker start registry
11.3 上传标记的镜像
docker push 192.168.180.131:5000/jdk1.8