文章目录
安装docker
sudo apt install docker.io
启动docker
sudo systemctl start docker
查看docker状态
sudo docker status
docker加入开机启动
sudo systemctl enable docker
拉取镜像
sudo docker pull [镜像名]
查看docker内所有容器
sudo docker ps
查看docker内正在运行的容器
sudo docker ps -a
查看docker内的镜像
sudo docker images
导入镜像文件
sudo docker load -i xxx.tar
镜像打包到tar文件
sudo docker save -o xxx.tar
启动容器
sudo docker start 容器名或容器ID
重启容器
sudo docker restart 容器名或容器ID
docker run 启动容器
例:sudo docker run --net host --name 容器名 -p 8000:8000 容器名:版本号
sudo docker run 后的相关参数顺序不唯一
--net host 容器使用主机的网络
--net bridge 容器使用docker指定的网桥
--name xxx 指定容器名字
-p 8000:8000 host上8000号端口,映射到容器暴露的8000号端口
-d 后台运行容器
-v /etc/localtime:/etc/localtime 给容器挂载存储卷
-e -e后可设置密码,制定环境变量等
--restart = always docker重启该容器也一起重启
-i 以交互模式运行容器
-t 为容器重新分配一个伪输入终端
-it 要合着一起使用,若只有 -i 则没有输入终端 若只有 -t 有终端,但是没有可交互的信息(也就是出现新的终端,你输入指令没反应)
docker内进入MySQL容器
sudo docker exec -it mysql bash
进入MySQL容器内登录(SQL命令以;结束,否则命令不会执行)
sudo mysql -uroot -p (如果设置密码需要输入)
mysql> use mysql; 进入数据库
mysql> show databases; 显示数据库
mysql> use ****; 进入数据库
mysql> show tables; 显示已有的表
mysql> select * from man_camera; 查看该表下所有的信息
mysql>insert into man_camera(表名) (表的键)values (表的值); 表内插入数据
mysql>update man_camera(表名) set 表的键=表的值 where ID/序列号; 表内插入数据
刚接触docker,对docker的一些理解:
容器=镜像+读写层
(1)镜像可以看成类,容器可以看做是类的实例化对象
(2)容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件
(3)镜像是只读的,镜像可以运行为多个容器,但容器的名称不能重复,必须是唯一的