Docker
-
docker常用命令
命令代码 作用 参数 Docker images 查看镜像 TAG:标签 latest:最新的 docker rmi (IMAGE ID) 删除镜像 docker rmi (ddcca4b8a6f0/redis:latest) docker search redis 搜索镜像 根据STARS排名 OFFICIAL表示是官方的 docker pull redis 拉取镜像 默认拉取最新的 -
查看容器相关命令
命令代码 作用 docker ps -a 查看所有容器 包括未运行的 docker ps 查看正在运行的容器 docker ps -l 查看最后运行的容器 docker ps -f status=exited 查看停止的容器 docker ps -n 5 列出最近创建的n个容器 -
创建与启动容器的相关命令
docker run --name mynginx -P nginx 创建容器并进入 -P表示随机端口 docker rm 容器名/容器ID 删除容器 docker run --name nginx -p 80:80 nginx 指定端口 docker run -di --name mynginx -P nginx 后台运行 docker exec -it mynginx /bin/bash 运行容器并进入容器 docker stop mynginx 停止容器 docker start mynginx 启动容器 -i 表示运行容器 -t 表示容器启动后会进入其命令行 加入这两个参数以后,容器创建就能登陆进去 即分配一个伪终端 --name 为创建的容器命名 -v 表示目录映射关系 -d 在run后面加上-d参数 则会创建一个守护式容器在后台运行 这样创建的容器不会自动登录容器 -p 表示端口映射 前者是宿主机端口 后者是容器内的映射端口 -P 随机使用宿主机的可用端口与容器内暴露的端口映射 -
目录挂载(容器数据卷操作)
-
匿名挂载
-
匿名挂载只需要写容器的目录即可 容器外对应的目录会在 /var/lib/docker/volumes中生成
docker run -di -v /usr/local/data --name centos7 centos:7 --/usr/local/data是容器的地址 也可以通过 docker inspect centos7 查看全部的配置信息
-
-
指定目录挂载
-
先启动一个容器 在启动的过程中指定目录挂载
docker run -di --name mynginx -p 83:80 -v /mydata/docker_nginx:/abc/123 nginx -v 前面的是宿主机的目录 后面的是容器内挂载的目录 两个目录是完全同步的 改变一个另一个也会随之改变
-
-
具名挂载
-
具名挂载就是给数据卷起了个名字 容器外对应的目录会在 /var/lib/docker/volume中生成
docker run -di -v docker_centos_data:/usr/local/data --name mynginx06 nginx
-
-
权限(只读/读写)
-
给挂载目录一个权限
-- /abc:ro 给/abc这个文件夹只读权限 docker run -di --name mynginx08 -P -v /mydata/docker_nginx/:/abc:rt nginx
-- /abc:ro 给/abc这个文件夹读写权限 docker run -di --name mynginx08 -P -v /mydata/docker_nginx/:/abc:rw nginx
-
-
继承
-- nginx09继承nginx08 以只读模式 docker run -di --name nginx09 --volumes-from nginx08:ro nginx
-
查看目录挂载的关系
-
通过docker volume inspect 数据卷名称 可以查看该数据卷对应宿主机的目录地址
docker volume inspect c12a32dffe47a715076f88e6495d70e72f711f2d64a8fc220f868ca85fd89763
-
-
-
查看容器ip地址
-
docker inspect 容器名称|容器ID
-
-
删除容器
-
docker rm nginx09
-
-
docker支持自己构建镜像 还支持将自己构建的镜像上传至公共仓库,镜像构建可以通过一下两种方式实现:
-
docker commit :从容器创建一个新的镜像
-
docker build :配合dockerfile文件创建镜像
-
目标:通过基础镜像centos7,在该镜像中安装jdk和tomcat以后将其制作为一个新的镜像mycentos7
-
拉取镜像:docker pull centos:7
-
创建容器:docker run -di --name mycentos centos:7
-
拷贝资源:将宿主机的 jdk 和 tomcat 拷贝至容器
-
docker cp jdk-16.0.2_linux-x64_bin.tar.gz mycentos:/root
-
docker cp apache-tomcat-8.5.70.tar.gz mycentos:/root
-
-
进入mycentos容器:docker exec -it mycentos /bin/bash
-
安装资源:
-
mkdir /usr/local/java
-
mkdir /usr/local/tomcat
-
tar zxvf apache-tomcat-8.5.70.tar.gz -C /usr/local/tomcat
-
tar zxvf jdk-16.0.2_linux-x64_bin.tar.gz -C /usr/local/java
-
vi /etc/source
-
-
构建镜像
-
docker commit -a="caicaicentos" -m="tomcat and jdk" centos7 mycentos:7
-
-
-
-
使用构建的镜像创建容器
-
docker run -di --name mycentos7 -p 8080:8080 mycentos:7
-