Docker镜像命令
docker images | 查看所有镜像 |
---|---|
docker images -q | 查看所有镜像i |
docker search 镜像 | 搜索镜像 |
docker pull 镜像 | 拉取镜像 |
docker rmi 镜像ID | 删除镜像 |
Docker容器命令
docker run -it | 使用交互的方式运行,进入容器查看内容 |
---|---|
docker run -d | 后台运行容器 |
docker run -p | 指定容器端口 |
docker ps | 查看正在运行的容器 |
docker ps -a | 查看所有容器 |
docker exec -it 容器名 /bin/bash | 进入容器 |
docker attach 8a3681939cc9 | 进入容器 |
docker stop 容器名 | 停止容器 |
docker rm 容器名 | 删除容器 |
docker inspect 容器名 | 查看容器详细信息 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IMg9wwCn-1667033377216)(D:\QQ\1096075493\FileRecv\IMG_20220609_200510.png)]
Docker容器的数据卷
创建启动容器时,使用 -v 参数 设置数据卷
docker run ... -v 宿主机目录(文件):容器内目录(文件)...
[root@localhost ~]# docker run -it -v /home/ceshi:/home centos:7 /bin/bash
Docker配置数据卷容器
1.创建启动c3数据卷容器,使用-v参数 设置数据卷
docker run -it --name c3 -v /volume centos:7 /bin/bash
2.创建c1 c2容器 , 使用--volumes-from 参数 设置数据卷
docker run -it --name c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name c2 --volumes-from c3 centos:7 /bin/bash
Docker日志、元数据、进程查看
日志查看
# -tf 显示日志
[root@localhost ~]# docker logs -tf -tail 10 a96e257c1af4
容器进程信息
[root@localhost ~]# docker top a96e257c1af4
Docker文件拷贝
[root@localhost ~]# docker cp 容器id:容器文件路径 主机路径
Commit镜像
docker commit 提交容器使其成为我新的副本
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]
[root@localhost ~]# docker commit -a="weishuo" -m="add webapps app" 1c57f9733172 tomcat02:1.0
实战:安装MySQL
1.搜索镜像,获取镜像
[root@localhost ~]# docker search mysql
[root@localhost ~]# docker pull mysql:5.7
2.运行容器,做数据挂载
[root@localhost ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWOED=123456 --name mysql01 mysql:5.7
具名挂载、匿名挂载
#匿名挂载
-v 容器内部路径
docker run -d -p --name ngin01 -v /etc/nginx nginx
#具名挂载
-v 卷名:容器内路径
docker run -d -p --name ngin01 -v juming-nginx:/etc/nginx nginx
认识DockerFile
[root@localhost docker-test-volume]# vim dockerfile1
[root@localhost docker-test-volume]# cat dockerfile1
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "----end----"
CMD /bin/bash
[root@localhost docker-test-volume]#
[root@localhost docker-test-volume]# docker build -f /home/docker-test-volume/dockerfile1 -t weishuo/centos:7 .
weishuo/centos 7 0b6613e7e154 About a minute ago 231MB
[root@localhost docker-test-volume]# docker run -it 0b6613e7e154 /bin/bash
构建步骤
1.编写dockerfile文件
2.docker build构建成为一个镜像
3.docker run运行镜像
4.docker push 发布镜像(DockerHub,阿里云镜像仓库)
DockerFile命令
FROM #基础镜像,从这里构建
MAINTAINER #镜像作者(姓名+邮箱)
RUN #镜像构建的时候需要运行的命令
ADD #步骤,tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR #镜像的工作目录
VOLUME #挂载的目录
EXPOSE #暴露端口配置
CMD #指定容器启动的时候要运行的命令
ENTRYPOINT #指定容器启动的时候要运行的命令,可以追加命令
ONBULID #当构建一个被继承DockerFile这个时候就会运行ONBULID的指令
COPY #类似ADD,将我们的文件拷贝到镜像中
ENY #构建的时候设置环境变量
实战测试centos7镜像
1.编写dockerfile文件
[root@localhost dockerfile]# vim mydockerfile-centos:7
=========================================================================================
FROM centos
MAINTAINER weishuo<1096075493@qq.com>
#环境变量
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN cd /etc/yum.repos.d/
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
#安装工具
RUN yum install -y vim
RUN yum install -y net-tools
#暴露端口
EXPOSE 80
#输出信息
CMD echo $MYPATH
CMD echo "---end---"
CMD /bin/bash
=========================================================================================
2.通过文件构建镜像
[root@localhost dockerfile]# docker build -f mydockerfile-centos\:7 -t mycentos:1.0 .
3.测试运行
[root@localhost dockerfile]# docker run -it mycentos:1.0
[root@7dd32d7af670 local]# pwd
/usr/local
[root@7dd32d7af670 local]# vim 1.txt
[root@7dd32d7af670 local]# ifconfig
# docker history查看镜像制作历史
[root@localhost ~]# docker history dc742ff2df7d
发布镜像DockerHub
推送镜像到DockerHub
[root@localhost ~]# docker push weishuo/mysql:1.0
发布镜像阿里云
参考阿里云文档
docker网络
#查看容器内host配置
[root@localhost ~]# docker exec -it tomcat03 cat /etc/host
#镜像内ping
[root@localhost ~]# docker exec -it tomcat03 ping Tomcat01
#查看镜像内ip地址
[root@localhost ~]# docker exec -it tomcat03 ip address
#实现tomcat02和tomcat03连通
[root@localhost ~]# docker run -d -P --name tomcat02 --link tomcat03 容器名
自定义网络(桥接)
#查看dorcker网络
[root@localhost /]# docker network ls
NETWORK ID NAME DRIVER SCOPE
32c07146928e bridge bridge local
#1
[root@localhost /]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynat
92d1be930dd6439ab57f0f3f2542db076c31deeb6ab50ada3ee06b75e823f278
#2
[root@localhost /]# docker network ls
NETWORK ID NAME DRIVER SCOPE
32c07146928e bridge bridge local
0e5820bd3ca8 host host local
92d1be930dd6 mynat bridge local
91733f872cab none null local
#3
[root@localhost /]# docker network inspect mynat
{
"Subnet": "192.168.0.0/16",
"Gateway": "192.168.0.1"
}
本文含有隐藏内容,请 开通VIP 后查看