Appearance
docker
常用命令
基础命令
bash
docker version # 显示Docker的版本信息
docker info # 显示Docker的系统信息,包括镜像和容器的数量
docker 命令 --help # 帮助命令
镜像命令
bash
# 查看所有已安装的镜像
docker images
# 搜索镜像
docker search images_id
docker search images_id --filter=STARS=3000 # 搜索STARS大于3000的镜像
# 下载镜像 示例:docker pull mysql:8.0
docker pull images_id:tag
# 删除镜像
docker rmi -f 镜像id
# 删除多个镜像
docker rmi -f 镜像id 镜像id 镜像id
# 删除全部的镜像
docker rmi -f $(docker images -aq)
容器命令
bash
# 查看容器元信息
docker inspect 容器id
# 进入运行中的容器
docker exec -it 容器id /bin/bash # 进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach 容器id # 进入容器正在执行的终端,不会启动新的进程!
# 设置容器自启动
docker update --restart=always 容器id
# 新建容器并启动
docker run [可选参数] image
|---------------------|------------------------------------------------------|
| --name="Name" | 容器名字,用来区分容器 |
|---------------------|------------------------------------------------------|
| -d | 后台方式运行 |
|---------------------|------------------------------------------------------|
| -it | 使用交互方式运行,进入容器查看内容 |
|---------------------|------------------------------------------------------|
| -it 容器id /bin/bash | 测试,启动并进入容器 |
|---------------------|------------------------------------------------------|
| -p | 指定容器的端口 示例: -p ip:主机端口:容器端口 -p 8080:8080 |
|---------------------|------------------------------------------------------|
bash
# 列出正在运行的容器
docker ps
# 列出正在运行的容器+历史运行过的容器
docker ps -a
# 显示最近创建的?个容器
docker ps -a -n=?
# 退出容器且停止运行
exit
# 退出容器但不停止运行
Ctrl + P + Q
# 删除容器
docker rm 容器id # 不能删除正在运行的容器,如果要强制删除就是rm -f
# 删除所有的容器
docker rm -f $(docker ps -aq)
docker ps -a -q|xargs docker rm
# 启动容器
docker start 容器id
# 重启容器
docker restart 容器id
# 停止容器
docker stop 容器id
# 强制停止容器
docker kill 容器id
网络相关
bash
# 查看网络
docker network ls
# 移除网络
docker network rm 容器id
# 创建自定义网络(指定ip段):
docker network create --subnet=172.20.0.0/16 mynet
# 创建自定义网络(不指定ip段):
docker network create mynet
其它命令
bash
# 后台启动容器
docker run -d 镜像名
# 查看容器进程信息
docker top 容器id
# 从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的的主机路径
# 在容器内新建一个文件
touch test.java
常用安装
安装php
1、先安装php对应版本的镜像
2、安装php7.3.6 容器
bash
docker run --restart=always --name php73 -v /Users/lee/www:/var/www/html -d -p 9000:9000 php:7.3.6-fpm
# 指定自定义network安装
docker run --restart=always --name php73 --network mynet -v /Users/lee/www:/var/www/html -d -p 9000:9000 php:7.3.6-fpm
# 指定自定义固定ip安装
docker run --restart=always --name php73 -v /Users/lee/www:/var/www/html -d -p 9000:9000 --net mynet --ip 172.20.0.3 php:7.3.6-fpm
安装nginx
1、先安装nginx对应版本的镜像
2、安装nginx 容器
bash
# (1)添加容器
docker run -d -p 80:80 --name nginx nginx
# (2)复制配置文件到本地
docker cp nginx:/etc/nginx /Users/lee/docker/nginx/config/
docker cp nginx:/var/log/nginx /Users/lee/docker/nginx/logs/
docker cp nginx:/usr/share/nginx/html /Users/lee/docker/nginx/data/
# (3)删除容器
docker rm -f nginx
# (4)重新创建容器
docker run --name nginx -p 80:80 -v /Users/lee/docker/nginx/config/nginx/:/etc/nginx -v /Users/lee/www:/usr/share/nginx/html -v /Users/lee/docker/nginx/logs:/var/log/nginx -d nginx
# 重新创建容器:(指定自定义network方式)
docker run --name nginx --network mynet -p 80:80 -v /Users/lee/docker/nginx/config/nginx/:/etc/nginx -v /Users/lee/www:/usr/share/nginx/html -v /Users/lee/docker/nginx/logs:/var/log/nginx -d nginx
3、配置nginx
在/Users/lee/docker/nginx/config/nginx/conf.d/default.conf
中配置路由 域名映射即可。。
如果使用自定义网络的方式映射域名。可以直接使用:
bash
fastcgi_pass php73:9000;
# 替代以下域名ip映射
fastcgi_pass 172.17.0.2:9000;
安装mysql
1、先安装mysql镜像
2、安装mysql容器
bash
# 安装命令:
docker run --restart=always -it -p 3306:3306 --name mysql -v /Users/lee/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
# 指定自定义network方式安装:
docker run --restart=always -it -p 3306:3306 --name mysql --network mynet -v /Users/lee/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
安装python
1、安装python镜像
2、安装python容器
bash
# 安装命令:
docker run --restart=always -it --name python3 -v /Users/lee/docker/python:/usr/src/myapp -w /usr/src/myapp -d python:latest
# 指定自定义network方式安装:
docker run --restart=always -it --name python3 --network mynet -v /Users/lee/docker/python:/usr/src/myapp -w /usr/src/myapp -d python:latest
3、vscode配置python
(1)安装插件:
- docket 插件
- remote-Containers 插件
(2)环境配置:
在vscode左下角点击"><"图标 --> Attach to running Containers … --> python3
即可进入远程的python环境。
本地的/Users/lee/docker/python
既对应远程/usr/src/myapp
文件夹 所有项目在该文件下操作
教程笔记
https://www.kuangstudy.com/bbs/1473206526041661442#header17 狂神视频笔记地址
创建网络(容器互联)
创建网络的目的是让容器之间互相通信时不会因为电脑重启造成ip更换。例如php中映射域名指向的容器ip一旦改变 就会失效
创建自定义网络(指定ip段):
bash
docker network create --subnet=172.20.0.0/16 mynet
创建自定义网络(不指定ip段):
bash
docker network create mynet
这样就创建了一个自定义网络mynet
详细教程:(查看容器互联章节)