网站首页 > 精选教程 正文
安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
docker的启动与停止
启动docker
systemctl start docker
停止docker
systemctl stop docker
重启docker
systemctl restart docker
查看docker状态
systemctl status docker
开机启动
systemctl enable docker
查看docker概要信息
docker info
查看docker帮助文档
docker --help
docker镜像相关命令
查看本地所有镜像
docker images
REPOSITORY:镜像名称 TAG:镜像标签 IMAGE ID:镜像id CREATED:创建时间 SIZE:镜像大小
镜像都是存储在Docker宿主机的/var/lib/docker目录下
搜索镜像
docker search 镜像名称
NAME :仓库名称 DESCRIPTION :镜像描述 STARS :start数 越多越受欢迎 OFFICIAL :是否官方 AUTOMATED:自动创建,表示该镜像是由docker hub自动构建流程创建的
拉取镜像,从中央仓库下载镜像到本地
docker pull 镜像名称
如:docker pull nginx
删除镜像
docker rmi 镜像id
删除所有镜像
docker rmi -f docker images -q
容器相关命令
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
查看最后一次运行的容器
dockers ps -l
查看停止的容器
docker ps -f status=exited
创建容器及常用参数
创建容器
docker run
-i:表示运行容器
-t:表示容器启动后会进入命令行,加这两个参数后容器创建就能登陆进去,即分配一个伪终端
-v:表示文件挂载(宿主机目录:容器目录),可以使用多个-v做多个目录或文件映射,修改宿主机上的文件同步更新到容器
-d:创建守护进程在后台运行
-p:端口映射(宿主机端口:容器内的端口),可以使用多个-p做多个端口映射
--name:容器名称
--link 容器名称: 容器间单向通讯
交互方式创建容器
docker run -it --name=容器名 镜像名:标签 /bin/bash
退出当前容器
exit
守护方式创建容器
docker run -d --name=容器名 镜像名:标签
停止容器
docker stop 容器名称(容器id)
启动容器
docker start 容器名称(容器id)
重启容器
docker restart 容器名称(容器id)
删除已停止的容器
docker rm 容器名称(容器id)
删除运行中的容器
docker rm -f 容器名称(容器id)
文件拷贝
从宿主机拷贝到容器
docker cp 拷贝的文件和目录 容器id:容器目录
从容器拷贝到宿主机
docker cp 容器id:容器目录 拷贝的文件和目录
目录挂载
在创建容器的时候将宿主机的目录与容器内的目录进行映射,这样我们可以通过修改宿主机上某个文件从而影响容器
创建容器时使用-v 宿主机目录:容器目录 如:
docker run -d -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos centos:7
如果共享的是多级目录,可能会出现权限不足的提示,这是因为centos7中的安装模块selinux把权限禁掉了,我们需要添加参数 --privileged=true 来解决挂在目录没有权限的问题
使用 --volumes-from 共享容器内挂载点,
适用场景多个容器挂载相同的目录且使用的文件相同
·1、创建一个共享挂载点的容器
docker create --name webpage -v /usr/local/docker/webapps-docker:/usr/local/tomcat/webapps tomcat /bin/true
创建容器使用其他容器的挂载点
docker run --volumes-from webpage --name tomcat1 -d -p 8001:8080 tomcat
docker run --volumes-from webpage --name tomcat2 -d -p 8002:8080 tomcat
查看容器ip
docker inspect 容器id(容器名称)
也可以直接使用如下的命令直接输出ip地址
docker inspect --format='{{.NetworkSettings.Networks.bridge.IPAddress}}' 容器id(容器名称)
迁移与备份
容器保存为镜像
docker commit 容器名 保存为镜像名
镜像备份 把镜像保存为某个文件
docker save -o 保存的文件名 镜像名
镜像恢复
docker load -i 保存的文件名
-i 输入文件
容器间通信
1、单向通信
--link 容器名,如下命令 在web可以ping通database,在database中ping不通web,访问通过容器名而不是ip
docker run -d --name web --link database tomcat
2、双向通信
借助bridge 实现容器间双向通讯
创建bridge类型的网络
docker network create -d bridge mybridge
创建两个互相通讯的容器
docker run -d --name web tomcat
docker run -d -it --name database centos /bin/bash
把上面创建的两个容器加入到新创建的mybridge网络中
docker network connect mybridge web
docker network connect mybridge database
测试是否能够通讯,在容器内容 ping 容器名
Dockerfile
什么是Dockerfile
Dockerfile是一个包含用于组合镜像命令的文本文档,docker通过读取Dockerfile中的指令按步自动生成镜像
根据Dockerfile构建镜像命令
docker build -t 机构/镜像名<:tags> Dockerfile目录
常用命令
FROM image_name:tag :定于了使用哪个基础镜像
MAINTAINER user_name :声明镜像的创建者
ENV key value :设置环境变量
RUN command :构建镜像执行
ADD source_dir/file dest_dir/file: 将宿主机的文件复制到容器内,如果是一个压缩文件将自动解压
COPY source_dir/file dest_dir/file :将宿主机的文件复制到容器内,如果是一个压缩文不会自动解压
WORKDIR path_dir :设置工作目录
CMD 容器启动后执行的默认的命令或参数,如Dockerfile中出现多个CMD只有最后一个被执行,容器在启动时附件指令则CMD别替换
ENTRYPOINT 容器启动时执行的命令,Dockerfile中最后一个ENTRYPOINT会被执行
RUN yum install -y vim #Shell命令格式
RUN ["yum","install","-y","vim"] #Exec命令格式
应用部署
安装mysql 步骤
1、下载mysql镜像
dockers pull mysql
2、根据镜像启动mysql容器
docker run --name docker-mysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql:tag
--name : 指定容器名docker-mysql
-e MYSQL_ROOT_PASSWORD=123456 给root账号设置密码
安装ES
1、下载镜像
docker pull elasticsearch
2、根据镜像启动ES容器
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name docker_ES elasticsearch
9200端口是发送http的端口
9300端口是集群之间通讯的端口
Docker 启动nginx容器
设置挂载点用法示例
当文件改变restart一下容器即可,或者进到容器内部重启一下nginx
docker run -d -p 80:80 \
--name docker-nginx-customer-fangzy \
-v /usr/local/dockertest/docker-nginx-customer/docker-nginx-fangzy-conf/index.html:/usr/share/nginx/html/index.html \
-v /usr/local/dockertest/docker-nginx-customer/docker-nginx-fangzy-conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/dockertest/docker-nginx-customer/docker-nginx-fangzy-conf/default.conf:/etc/nginx/conf.d/default.conf \
nginx:tag
安装Jenkins
需要现在宿主机上新建 /usr/local/dockertest/docker-jenkins/jenkins_home 目录,作为Jenkins的挂载点
1、下载镜像
docker pull jenkins
2、根据镜像启动Jenkins容器
docker run -d –name docker-jenkins -p 8081:8080 -p 50000:50000 -v /usr/local/dockertest/docker-jenkins/jenkins_home:/var/jenkins_home jenkins
安装gogs
1、下载最新的镜像
docker pull gogs/gogs
2、根据镜像启动容器
docker run –name=docker-gogs-latest -d -p 3000:3000 -v /usr/local/dockertest/docker-gogs-data:/data gogs/gogs
安装activemq
1、拉取activemq镜像
docker pull docker.io/webcenter/activemq
2、启动activemq服务
docker run -d --name activemq -p 61616:61616 -p 8161:8161 docker.io/webcenter/activemq:latest
登录账号密码:admin
Dockerfile构建镜像示例
使用Dockerfile构建tomcat镜像
1、在合适位置创建文件夹 tomcat
2、在tomcat文件夹下创建web-app文件夹,在web-app文件夹下创建index.html,编辑index.html添加一段内容
3、在tomcat文件夹下创建Dockerfile文件,编辑Dockerfile添加如下内容
4、执行如下命令构建镜像
docker build -t fangzy/tomcat:1.0 .
使用 docker images命令查看镜像
5、执行如下命令启动容器
docker run -d -p 8080:8080 fangzy/tomcat:1.0
6、在浏览器中访问 ip:8080/web-app/index.html 页面显示添加到index.html中的内容
使用Dockerfile构建Springboot程序镜像,根据传入的参数启动不同环境
1、创建一个springboot的文件
2、本地创建springboot工程,提供出一个rest api接口,接口返回值从不同环境的配置文件中获取,打包并上传打包之后的jar包到springboot目录下
3、在springboot文件夹下创建Dockerfile文件,编辑Dockerfile添加如下内容
4、执行如下命令构建镜像
docker build -t fangzy/apringboot-profile-test:1.0 .
5、使用 docker images查看构建的镜像
6、使用如下命令启动容器
docker run -d -p 8001:8080 -e PROFILE=test fangzy/apringboot-profile-test:1.0
启动容器时根据传入不同的PROFILE的值启动不同的环境的配置信息
猜你喜欢
- 2024-10-26 微1-微服务技术栈及分享计划 微服务快速入门
- 2024-10-26 基于Docker的CI/CD流水线实践 docker运行流程
- 2024-10-26 vulhub漏洞环境 vulhub漏洞教程
- 2024-10-26 网站建立实战案例 网站建立实战案例范文
- 2024-10-26 还在用Jenkins?试试Gitlab的CI/CD功能吧,贼带劲
- 2024-10-26 使用 Kubernetes Helm 安装 CI/CD 工具:Drone
- 2024-10-26 Docker常用镜像安装:MySql Redis GitLab maven私服等
- 2024-10-26 从0到1写一个网站(3)搭建环境 编写一个网站
- 2024-10-26 浅析Kubernrtes Service Types 浅析学校德育的个体智能发展功能
- 2024-10-26 docker + Jenkins + gogs 自动化部署
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)