打开终端,然后输入此命令测试Docker是否正常运行
docker run hello-world
拉取镜像
docker search <镜像> #在docker hub上搜索镜像
docker pull <镜像名:tag> #拉取镜像
查看镜像
docker images
删除镜像
docker rmi hello-world
列出容器
docker ps
docker ps -a # 为查看所有的容器,包括已经停止的。
查看容器日志
docker logs -f <容器名 or ID>
删除容器
docker rm hello-world
停止、启动、杀死指定容器
docker start <容器名 or ID> # 启动容器
docker stop <容器名 or ID> # 启动容器
docker kill <容器名 or ID> # 杀死容器
进入容器
docker exec -it <容器名称> bash
查看容器详细信息
docker inspect <容器名称>
用户的文件夹划分
docker pull caapi/ai
docker run --name data1 -d -p 8001:9999 -v /dockerdata/data1:/opt/notebook caapi/ai
附:在Docker中运行Mysql
1、拉取镜像
docker pull mysql
2、创建本机目录用于存放文件
(注意,创建了挂载数据卷后,要将配置文件放在挂载的目录下,不然容器会启动失败,因为mysql启动时要读取配置文件)
mkdir -p ~/mysqlData/conf ~/mysqlData/data
//conf: 目录将映射为 mysql 容器的配置文件my.cnf。
//data: 目录将映射为 mysql 容器的数据存储位置。
vi ~/mysqlData/conf/my.cnf
3、使用mysql镜像运行容器
docker run -itd -p 3307:3306 --name testmysql1 -v ~/mysqlData/conf:/etc/mysql/conf.d -v ~/mysqlData/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
//-p 3307:3306:将容器的3307端口映射到主机的3306端口
//-name testmysql1:将容器命名为testmysql1
//-v ~/mysqlData/conf:/etc/mysql/conf.d:将主机中的~/mysqlData/conf挂载到容器的/etc/mysql/conf.d
//-v ~/mysqlData/data:/var/lib/mysql:将主机中的~/mysqlData/data挂载到容器的/var/lib/mysql
4、配置my.cnf文件
5、容器重启
docker restart testmysql1
6、进入容器
docker exec -it testmysql1 bash
7、登陆mysql,设置权限
mysql -u root -p
grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION;
ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
8、打开Navicat测试连接
9、建库建表,加数据后,查看宿主机上挂载的数据卷是否有数据,在 ~/mysqlData/data 目录下查看
docker exec -it testmysql1 bash
10、挂载数据卷后,数据库数据存储文件就可以持久化在宿主机上,后面运行新容器的时候可以挂载已有数据存储文件的目录,容器运行后就有数据了
在Docker中运行Nginx
1、拉取镜像
docker pull nginx
2、创建本机目录用于存放文件
mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf
//www: 目录将映射为 nginx 容器配置的虚拟目录。
//logs: 目录将映射为 nginx 容器的日志目录。
//conf: 目录里的配置文件将映射为 nginx 容器的配置文件。
vi ~/nginx/conf/nginx.conf
chmod 777 nginx.conf
3、使用nginx镜像运行容器
docker run -p 80:80 --name mynginx -v ~/nginx/www:/www -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/wwwlogs -d nginx
//-p 80:80:将容器的80端口映射到主机的80端口
//-name mynginx:将容器命名为mynginx
//-v ~/nginx/www:/www:将主机中的www挂载到容器的/www
//-v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将主机中的nginx.conf挂载到容器的/etc/nginx/nginx.conf
//-v ~/nginx/logs:/wwwlogs:将主机中的logs挂载到容器的/wwwlogs
4、配置nginx.conf文件
5、容器重启