docker

126 阅读2分钟

镜像 image

#不带版本号默认下载最新的
docker pull node:16.18.0

#查看所有image
docker images
-a 所有历史 
-q 只获取id

#删除image
docker rmi node
-f 强制删除
#删除全部image
docker rmi -f $(docker images -aq)

容器 ps

# 启动镜像
docker run -it node /bin/bash
-it 会进入这个容器交互  使用/bin/bash进入
cont +q+p 退出容器保持后台运行

#查看正在运行的容器
docker ps 
-a 所有历史 
-q 只获取id

#删除容器 跟id
docker rm 40cd3261d3d4
-f 强制删除

#删除全部容器
docker rm -f $(docker ps -aq)

#启动重启停止杀掉。容器
docker ps start [容器id]
docker ps restart [容器id]
docker ps stop [容器id]
docker ps kill [容器id]

#进入容器
docker exec -it [容器id] /bin/bash 会新开一个终端窗口

docker attach [容器id] 会进入之前的窗口

拷贝容器内的文件到主机上

在容器中home下创建文件
touch chuan.ts

退出容器
exit
再执行
docker cp 57cab5e1dd67:/home/chuan.ts /home

部署nginx

docker run -it --rm nginx
--rm 会在退出容器后删除这个容器
 docker run -d --name nginx01 -p 80:80 nginx
 -d 后台运行
 --name 给容器起名字
 -p 端口号映射 宿主机:容器

将自己的容器打成image

# docker commit -m='提交信息' -a='作者' 容器id 镜像名:版本号
 docker commit -m='nginx添加文件' -a='lio' e3cb3fcaf828 nginx2:1.0
 
 docker images #就可以看到自己刚打包的镜像

数据卷


docker run -d -p 3306:3306 -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7n

-d 后台运行
-p 将宿主机的端口和容器内的端口映射
-v 宿主机文件地址:容器文件地址 会将这两个文件地址同步可以互相修改
-e 变量MYSQL_ROOT_PASSWORD root的密码
-name 容器名

-v 容器内路径:ro rw #匿名挂载
ro是只读
rw是默认的可读写
开启ro后只有宿主机可以修改容器内不能修改
-v 卷名:容器内路径 #具名挂载
-v /宿主机路径:容器内路径 #指定路径挂载
 #  查看卷
 docker volume ls 
 
 #查看nginxconfig卷的详细信息
 docker volume inspect nginxconfig
# 启动容器test2 会和test一样共享卷这样就实现了容器间的卷共享
 --valumes-from 容器名 镜像名
 docker run -it --name test2 --volumes-from test chuan/centos

Dockerfile

创建Dockerfile文件
FROM centos
VOLUME ["volume01","volume02"]

CMD echo "---end---"
CMD /bin/bash

Dockerfile命令

FROM        node:latest    基础镜像 
MAINTAINER  lio            镜像作者
RUN         npm install    镜像运行的时候需跑的命令
ADD         MySQL image    添加镜像
WORKDIR     /app           镜像的工作目录
VOLUME                     挂在的数据卷位置
EXPOSE      3400           导出的端口号
CMD         echo           指定这个容器在启动时运行的命令只有最后一个生效,可被替代
ENTRYPOINT                 指定这个容器在启动时运行的命令可追加命令
ONBUILD     
COPY                       将文件拷贝到镜像中
ENV                        构建的时候设置环境变量