docker学习记录
镜像
下载
1 2 3 4 5 6 7 8 9 10 11
| 下载 windows linux 命令: docker pull docker.io/library/xxx:latest 注意是官方库可以省略的部分 dockerhub: hub.docker.com dockhub的镜像站:docker.fxxk.dedyn.io 给docker配置镜像站:daemon.json docker pull --platform=xxxx 一般linux上下载docker镜像会自动选择适合宿主机处理器架构的镜像 可以直接不下载直接使用docker run,创建运行容器时自动下载镜像
|
查看已下载镜像
docker images
删除镜像
docker rmi id/名字
容器
创建容器和运行
docker run -d -p 80:80 镜像id或者名字 可以设置容器名字没细讲
docker create和run类似 但只创建
查看运行中的容器
docker ps 显示正在运营容器
可以显示:容器id 所属镜像 容器名字等 -a(显示包括非运行的容器)
查看容器的信息
docker inspect 容器 查看容器的信息
删除容器
1
| docker rm -f id 删除正在运行的容器需要f
|
挂载卷 -v
绑定挂载卷
1 2
| docker run -d -p 80:80 -v 宿主机目录:容器目录 镜像id或者名字 绑定挂载 宿主目录写死 会覆盖容器目录内容
|
命名卷挂载
1 2 3 4 5 6 7 8
| docker volume create xxx docker run -d -p 80:80 -v 挂载卷名字:容器目录 镜像id或者名字 docker volume inspect 挂载卷名字 显示挂载卷的真实位置 docker volume rm xxx docker volume prune -a 删除所有没有容器使用的卷
|
查看已有的挂载卷
设置容器变量 -e
1 2 3 4 5 6 7 8
| -e参数 docker run -e xxx=xxx -d -p... -v... 镜像 创建mongdb容器 mongo 创建mongodb网页端容器 --name参数 docker run -e xxx=xxx -d -p... -v... --name 容器名 镜像 容器名要唯一
|
-it参数
-it参数 可以让交互页面进入docker交互页面
docker run -it -rm alpine 轻量级linux系统 停止运行后删除,调试很有用
进入容器的交互界面
docker exec -it 容器 /bin/sh
查看容器内linux系统信息
cat /etc/os-release 查看容器内linux系统信息,容器内的系统简洁有的工具不自带
–restart参数
第一个命名在docker停止后会重启,第二个手动停止不会重启 生产环境
docker run -d –restart always nginx
docker run -d –restart unless-stopped nginx
启动和暂停容器
docker start/stop 容器 会保留之前启动的参数
容器日志
docker logs 容器 -f 动态显示日志
在容器内部执行linux命令
docker exec 容器 ps -ef
容器网络 容器子网
1 2 3 4 5 6 7 8 9 10 11
| docker network create 子网名 桥接模式 --network 子网名 host模式 直接使用宿主机网络和端口 --network host none模式 没有网络 docker network list 显示所有docker网络 删除网路 docker network rm xxx
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| docker network create network1
docker run -d \ --name my_mongodb\ -e MONGO_INITDB_ROOT_USERNAME=name\ -e MONGO_INITDB_ROOT_PASSWORD=pass\ -v /my/datadir:/data/db\ --network network1\ mongo
docker run -d \ --name my_mongodb_express\ -p 8081:8081\ -e ME_CONFIG_MONGODB_SERVER=my_mongodb\ -e ME_CONFIG_MONGODB_ADMINUSERNAME=name\ -e ME_CONFIG_MONGODB_ADMINUSERPASSWORD=pass\ --network network1\ mongo-express
|
构建镜像
dockerfile
1 2 3 4 5 6 7
| dockerfile 描述镜像是如何创建的 from workdir copy run cmd [] 一个dockerfile里只能有一个cmd entrypoint 比cmd优先级更高,不容易被覆盖
|
docker build命令
1 2 3 4 5
| docker build -t 镜像名字 版本可不指定 . 然后就可以使用自定义的镜像创建运行了 发布镜像到dockerhub
|
docker compose
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 快捷创建多个容器,方便管理的容器编排技术,使用yml文件管理多个容器。
yml文件定义各个容器如何创建和如何协同工作的
docker compose文件默认所有容器自动加入同一个子网 yml文件文件里可以定义容器启动顺序dependson
标准的名字是docker-compose.yaml,如果是其它名字需要加-f docker compose up -d(同dockercompse文件目录下) 启动yml文件里定义的容器
docker compose up -d -f test.yaml(其它名字) 启动yml文件里定义的容器 docker compose down(同dockercompse文件目录下) 停止并删除容器
docker compose stop (同dockercompse文件目录下) 停止容器
docker compose start (同dockercompse文件目录下) 启动用dockercompose文件创建但已停止的容器
|