1. docker基本常用命令
docker version # 查看版本
systemctl start docker # 启动
systemctl stop docker # 停止
systemctl status docker # 查看状态
systemctl restart docker # 重启
systemctl enable docker # 设置开机自动启动
# 验证,运行hello-world
docker run hello-world # 下载hello-world镜像并运行
2. 项目部署在docker上,linux关闭之后,项目要重启
1、启动linux之后,执行docker images或者docker ps,如果出现下面的错误
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
2、则需要启动docker服务,执行:service docker start,如果没有报错,忽略这一步
3、执行docker ps -a,查看需要启动的服务(如果执行docker ps的话,有一些服务是看不到的)
4、通过id重启相应的docker服务
[root@localhost ~]# docker start 722cb567ad8b
5、进入容器:
docker exec -it 容器id或名称 /bin/bash
3. docker常用操作
操作 | 命令 | 说明 |
---|---|---|
查找 | docker search 关键字 | 可以在Docker Hub网站查看镜像的详细信息,如镜像的tag标签 |
抽取 | docker pull 镜像名:tag | :tag表示软件的版本,如果不指定则默认是最新的 |
列表 | docker images | 查看所有本地镜像 |
获取元信息 | docker inspect 镜像id | 获取镜像的元信息,详细信息 |
删除 | docker rmi -f 镜像id或镜像名:tag | 删除指定的本地镜像,-f表示强制删除 |
4. docker容器常用操作
操作 | 命令 | 说明 |
---|---|---|
运行 | docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像id或镜像名称:tag | –name 指定容器名,名称自定义,如果不指定会自动命名; -i 以交互模式运行,即以交互模式运行容器;-t 分配一个伪终端,即命令行,通常组合使用-it ;-p 指定端口映射,将主机端口映射到容器内的端口;-d 表示后台运行,即守护式运行容器;-v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读 |
列表 | docker ps -a -q | 查看正在运行的容器,-a表示显示所有容器,-q表示只显示容器id |
启动 | docker start 容器id或容器名称 | 启动容器 |
停止 | docker stop 容器id或容器名称 | 停止正在运行的容器 |
删除 | docker rm -f 容器id或容器名称 | 删除容器,-f表示强制删除 |
日志 | docker logs | 容器id或容器名称 |
在容器中执行 | docker exec -it 容器id或容器名称 /bin/bash | 进入正在运行的容器中并开启一个交互模式的终端,可以在容器中执行操作 |
获取元信息 | docker inspect 容器id | 获取容器的元信息 |
拷贝文件 | docker cp 主机中的文件路径 容器id或容器名称:容器路径;docker cp 容器id或容器名称:容器中的文件路径 主机路径 | 将文件中的文件拷贝到容器中;将容器中的文件拷贝到主机中 |
特别是这个拷贝:
docker cp 96f7f14e99ab:/www /tmp/
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
5. 更新镜像
(1)基于镜像创建容器
docker run --name mytomcat -p 8080:8080 -d tomcat
(2) 查看镜像ID
docker ps -a
(3)编辑镜像
eb3257561d9e 为我的容器id
docker exec -it eb3257561d9e /bin/bash
cd webapps/ROOT
rm -f index.jsp
echo 这是一个Docker Demo > index.html
exit
(4) 提交镜像 语法:docker commit -m=“描述消息” -a=“作者” 容器id或容器名 镜像名:tag
docker commit -m="自定义Tomcat镜像Demo" -a="QSSSYH" eb3257561d9e qsssyh/tomcat:v1
看到返回自定义的镜像信息即为创建成功
(5)测试自定义更新的镜像
docker run --name tomcat_v1 -p:8888:8080 -d qsssyh/tomcat:v1
6. 构建镜像
根据Dockerfile文件来自动构建镜像
Dockerfile是一个包含创建镜像所有命令的文本文件,使用docker build命令可以根据Dockerfile的内容创建镜像。
(1) 在根目录创建 Dockerfile 文件
vi Dockerfile
(2) 编辑Dockerfile 文件 文件中以#开头为注释
# 基础镜像
FROM tomcat
# 作者
MAINTAINER qq2940500
# 执行命令
RUN rm -f /usr/local/tomcat/webapps/ROOT/index.jsp
RUN echo "welcome to tomcat!" > /usr/local/tomcat/webapps/ROOT/index.html
(3) 构建新镜像,语法:docker build -f Dockerfile文件的路径 -t 镜像名:tag 命令执行的上下文
最后的 . 符号是执行上下文的语法 必须要有的
docker build -f Dockerfile -t qsssyh/tomcat:v2 .
可以看到镜像已经构建完成
(4)启动 并测试是否启动成功
7. 发布镜像
还没发布过,等我学会了再来补充吧
参考大神【墨落青杉】博主:
https://blog.youkuaiyun.com/weixin_42059737/article/details/87353921