(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
yum install docker-ce
(5)安装后查看docker版本
docker -v
2.2设置ustc的镜像3
ustc是老牌的Linux镜像服务提供者了,ustc docker mirror 的优势之一就是不需要注册,是真正的公共的服务。
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
编辑该文件:
vi /etc/docker/daemon.json
在该文件中输入如下内容:
{
"registry-mirrors":["http://docker.mirrors.ustc.edu.cn"]
}
docker基操
systemctl start/reload/stop/restart docker
systemctl enable/disable docker
docker info ----查看docker概要信息
docker --help docker 在线帮助文档
docker images --->查看镜像
docker search XXX
automated ........是否由docker hub 自动构建
docker pull tutum/centos ---->拉取镜像
docker rmi 镜像id/名称 ----->删除镜像
docker rmi `docker imges -q' ---->删除所有的镜像
容器相关的命令
docker ps -a --->查看所有容器
创建与启动容器
docker run
-i:表示运行容器
-t:表示启动后进入命令行
--name : 为容器命明
-v: 表示目录映射关系
-d:表示运行一个守护式的容器
-p :表示端口映射
(1)交互方式创建容器
docker run -it --name=容器名称 镜像名称:version /bin/bash
退出 exit 容器也会停止
(2)守护式的创建容器
docker run -di --name=mycemtos centos:7 ----->守护式的创建容器
docker exec -it mycentos /bin/bash --->容器不会停止
容器停止与启动和目录挂载
停止容器
docker stop 容器名称(或者容器ID)
启动容器
docker start 容器名称(或者容器ID)
文件拷贝
如果我们需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
目录挂载
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个文件从而去影响容器
创建容器 添加 -v 参数 后边为 宿主机目录:容器目录
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos centos:7
如果你共享的是多级的目录,可能会出现权限不足的提示.
这是因为Centos7中的安全模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂载目录没有权限的问题
docker exec -it mycentos2 /bin/bash ---->进入容器
查看容器
docker inspect --format='{{.NetworkSetting.IPAddress}}' mycentos
删除容器
docker rm mycentos3
mysql部署
拉取mysql镜像
docker pull centos/mysql-57-centos
创建容器
docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
-e 表示添加环境变量
Tomcat部署
(1)拉取镜像
docker pull tomcat:7-jre7
(2)创建容器
docker run di --name=mytomcat -p 9000:8000
-v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
将运行的容器保存为镜像
docker commit mynginx mynginx_i
将镜像保存tar
docker save -o mynginx.tar mynginx_i
//导入镜像
docker load -i mynginx.tar
dockerfile
基于一个基础镜像 创建一个新的镜像
From image_name:tag 定义使用哪个镜像启动构建流程
MAINTAINER usere_name
ENV key value 设置环境变量
ADD source_dir/file dest_dir/file 将宿主机文件复制到容器内 之后自动解压
COPY source_dir/file dest_dir/file 和add相似 不会自动解压
WORKDIR path_dir 设置公作2目录
使用dockerfile构建镜像
mkdir -p /usr/local/dockerjdk8
---> 添加 jdk到当前目录
vi Dockerfile
FROM cenos:7
MAINTAINER qifengle //维护者
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u171-linux /usr/local/java
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_172
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
docker build -t="jdk1.8" .
docker pull registry
docker run -di --name = registry -p 5000:5000 registry
docker ps
添加仓库信任
vi /etc/docker/daemon.json
add ------,
"insecure-registries":[ "192.168.184.141:5000"]
systemctl restart docker
docker tag jdk1.8 fdf.fsd.fsf.fss:5000/jdk1.8
上传到私服
docker push fdf.fsd.fsf.fss:5000/jdk1.8
允许docker 远程访问
vi /lib/systemd/system/docker.service
add Execstart -->
-H tcp://0.0.0.0:2375 -H unix:///var/run/do cker.sock
systemctl daemon-reload