docker使用结构图说明。
centos7 安装步骤
1.1 Docker 要求 CentOS 系统的内核版本高于 3.10
uname –r
1.2 使用 root 权限登录 Centos一定保证yum包更新到最新
yum -y update
1.3 删除旧版本的的docker
yum remove docker docker-common docker-selinux docker-engine
1.4 安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
1.5 设置yum源
yum-config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repo
1.6 查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort –r
1.7 安装Docker,命令:yum install docker-ce-版本号,我安装了17.12.1.ce
yum install docker-ce-17.12.1.ce
1.8 启动docker(可添加开机启动)
systemctl start docker
sudo systemctl enable docker
1.9 查看docker状态
systemctl status docker.service
1.10 验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version
1.11 docker启动重启命令
sudo service docker restart #重启服务
service docker start # 启动docker服务
service docker stop # 停止docker服务
1.12 更新(没有新建)/etc/docker/daemon.json
vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
保存后重启docker
service docker restart
二、 docker使用
2.1 常用命令
2.1.1 查看镜像
docker image ls # 该命令等同于:docker images
- REPOSITORY:镜像所属仓库名称。
- TAG:镜像标签。默认是 latest,表示最新。
- IMAGE ID:镜像 ID,表示镜像唯一标识。
- CREATED:镜像创建时间。
- SIZE: 镜像大小。
2.1.2 查看正在运行的容器
docker container ls # docker ps
2.1.3 查看所有容器
docker container ls –a # docker ps –a
2.1.4启动容器 docker run –i –t –v
docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
说明 :
-i :表示以“交互模式”运行容器
-t :表示容器启动后会进入其命令行
-v :表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
注意:不一定要使用“镜像 ID”,也可以使用“仓库名:标签名”,
例如:docker.cn/docker/centos:centos6。初始命令表示一旦容器启动,需要运行的命令,此时使用“/bin/bash”,表示什么也不做,只需进入命令行即可
2.1.5 删除所有容器
docker rm $(docker ps -aq) # docker rm $(docker ps -a -q)
停止所有的container,这样才能够删除其中的images
docker stop $(docker ps -a -q)
2.1.6 删除images,通过image的id来指定删除谁
docker rmi [-f] <image id> # -f 标识强制删除
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
要删除全部image的话
docker rmi $(docker images -q)
2.1.7 搜索镜像
docker search java
以上列表包含五列,含义如下:
- NAME:镜像仓库名称。
- DESCRIPTION:镜像仓库描述。
- STARS:镜像仓库收藏数,表示该镜像仓库的受欢迎程度,类似于 GitHub的 stars0
- OFFICAL:表示是否为官方仓库,该列标记为[0K]的镜像均由各软件的官方项目组创建和维护。
- AUTOMATED:表示是否是自动构建的镜像仓库。
注意:使用docker查找或下载镜像可能会超时,所以我们需要为docker配置国内的镜像加速器
我们可以借助阿里云的镜像加速器,登录阿里云
(https://cr.console.aliyun.com/#/accelerator)
2.1.8 下载镜像
docker pull java:8
2.1.9 新建并启动容器
docker run -d --name xuzhi -p 18080:8080 xuzhi/tomown:v1 /root/run.sh
-d 后台运行
-p 宿主机端口:容器端口 #开放容器端口到宿主机端口
2.1.10 停止容器 docker stop <容器id>命令
docker stop c8cd32d5399b
docker kill c8cd32d5399b # 强制停止容器
2.1.11 启动停止的容器
docker start c8cd32d5399b
2.1.12 查看容器信息
docker inspect 容器Id
选择查看容器的信息
--format根据模板来查看信息
docker inspect --format "{{.State}}" c8cd32d5399b
2.1.13 查看容器日志 docker container logs <容器id>
docker container logs
2.1.14 查看容器里的进程 docker top <容器id>
docker top c8cd32d5399b
2.1.15 进入容器
docker container exec -it c8cd32d5399b /bin/bash
2.2、构建自己的docker镜像
Dockerfile是一个文本文件,其中包含了若干条指令,指令描述了构建镜像的细节
From nginx #从本地镜像仓库拉取nginx的docker镜像
vim Dockerfile
FROM nginx
RUN echo 'This is Docker filrst nginx Image!' > /usr/share/nginx/html/index.html
执行 docker build -t nginx:xuzhi .
docker images
使用该镜像启动一个docker容器 docker run -d -p 18900:80 nginx:xuzhi
firewall-cmd --zone=public --add-port=18900/tcp --permanent
firewall-cmd --reload
http://www.mikel3.com:18900/
Dockerfile 常用命令:
docker run -d -p 58001:58001 xiafu:v58001
第一步:准备jar包
mkdir xiafu
cd xiafu
rz xiafu.jar
第二步:在jar同级目录创建Dockerfile
vim Dockerfile
FROM java:8
ADD xiafu.jar /app.jar
EXPOSE 58001
ENTRYPOINT ["java","-jar","/app.jar"]
entrypoint配置容器启动后执行的命令
使用docker build命令构建镜像
firewall-cmd –zone=public –add-port=58001/tcp --permanent
firewall-cmd –reload
docker build -t xiafu:v58001 .
格式: docker build -t 镜像名称:标签 Dockerfile的相对位置
启动镜像,加-d可在后台启动
docker run -d -p 58001:58001 xiafu:v58001