1、查看镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx stable-perl 9e5f6711d527 3 days ago 178MB
nginx v1 9e5f6711d527 3 days ago 178MB
2、删除镜像
#删除镜像名称为docker.io/java的镜像
docker rmi hello-world
docker rmi -f hello-world #强制删除镜像
删除成功
3、tag打标签
将镜像nginx:table-perl标记为 nginx:v1 镜像。
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx stable-perl 9e5f6711d527 3 days ago 178MB
[root@localhost ~]# docker tag nginx:stable-perl nginx:v1
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx stable-perl 9e5f6711d527 3 days ago 178MB
nginx v1 9e5f6711d527 3 days ago 178MB
[root@localhost ~]#
4、启动容器
启动名称为nginx:v1的镜像会创建出一个运行状态的容器
[root@localhost ~]# docker run -it --name nginx nginx:v1 bash
root@8c3423b61b0b:/#
-it:表示启动容器后开启一个交互的界面
--name:表示为这个启动的容器命个名字,上面的”nginx“就是容器的名字。(注:该选项为可选项,也可以不给容器取名字)
nginx:v1 :镜像的名称
bash:启动这个容器bash命令行
[root@localhost ~]# docker run -it --name nginx1 -p 9000:8080 -p 9001:8085 nginx:v1 bash
root@1c823326b42b:/#
-p:宿主机端口:docker虚拟机端口
注:一个-p命令映射一个端口,多个端口的映射就在后面写多个-p参数即可
[root@localhost ~]# docker run -it --name nginx -v /home/project:/soft --privileged nginx:v1 bash
root@8d265b67e371:/#
-v:宿主机目录:docker虚拟机的目录
--privileged:表示docker虚拟机在操作宿主机目录里面拥有最高权限
注:一个-v命令映射一个文件夹,多个文件夹的映射就在后面写多个-v参数即可
另外像数据库文件、软件配置文件建议都放在宿主机上通过映射的方式给到Docker虚拟机,这个将来在备份和恢复时就很方便
#先在宿主机上创建一个目录
mkdir /home/project1
#将上面的命令组合下启动一个容器
[root@localhost ~]# docker run -it -p 9000:8080 -p 9001:8085 -v /home/project:/soft --privileged --name nginx nginx:v1 bash
root@ea4c83eea023:/#
这就表示已经进入了Docker虚拟机里面的环境了
#在容器里面测试一些 soft文件夹下的文件写入
cd /soft
touch hello.txt
echo Thanks > hello.txt
#退出当前容器
exit
#去当前宿主机的目录下去查看一下文件是否写入
cat /home/project/hello.txt
5、暂停和停止容器的命令
##最好开两个终端,先启动一个容器,切换到另一个终端暂停和停止操作
[root@localhost ~]# docker ps -a | grep nginx
c9ea8833a451 nginx:v1 "bash" 28 seconds ago Up 27 seconds 80/tcp, 0.0.0.0:9000->8080/tcp, 0.0.0.0:9001->8085/tcp nginx
#暂停容器名为myjava的容器 命令格式:docker pause 容器名称|容器编号
[root@localhost ~]# docker pause nginx
#启动(用于被pause暂停了的容器)容器名为myjava的容器 命令格式:docker unpause容器名称|容器编号
[root@localhost ~]# docker unpause nginx
#停止容器名为myjava的容器 命令格式:docker stop 容器名称|容器编号
[root@localhost ~]# docker stop nginx
#启动(用于被stop停止了的容器)容器名为myjava的容器 命令格式:docker start -i 容器名称|容器编号
[root@localhost ~]# docker start -i nginx ## 重新进入docker虚拟机
root@c9ea8833a451:/#
6、 删除容器命令
#删除容器名为myjava的容器,前提是该容器必须是通过stop完全停止了的容器
[root@localhost ~]# docker ps -a |grep nginx
a92fd6ce42fe nginx:v1 "bash" About a minute ago Exited (0) 16 seconds ago nginx
[root@localhost ~]# docker rm nginx
nginx
#查看所有的容器 #删除成功
docker ps -a
7、导出镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx stable-perl 9e5f6711d527 3 days ago 178MB
nginx v1 9e5f6711d527 3 days ago 178MB
##导出镜像名称为nginx:v1的镜像
[root@localhost ~]# docker save nginx:v1 > /root/nginx.tar.gz
##导入镜像(load用来导入由docker save备份的镜像。) #我这里没有删除所以没有提示
[root@localhost ~]# docker load < /root/nginx.tar.gz
Loaded image: nginx:v1
8、更新镜像内容
##查看镜像
[root@k8s1 ~]# docker images | grep centos
centos 7.6 32b4fcafa5fa 2 hours ago 5.06GB
语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
##-d: 后台运行容器,并返回容器ID;如果加-d参数再次进入命令 docker exec -it tomcat /bin/bash
##-i: 以交互模式运行容器,通常与 -t 同时使用;
##启动镜像-p 将容器8080端口映射-到-宿主机端口8081,访问http://宿主机ip:8081 就可以访问到容器tomcat页面
--name别名 centos:7.6镜像名称
[root@k8s1 ~]# docker run -it -p 8081:8080 --name=tomcat centos:7.6 /bin/bash
[root@ee5061569494 /]# cat /etc/rc.local
#!/bin/bash
省略部分
/usr/local/tomcat7/bin/startup.sh ##添加内容,开机自动启动
[root@ee5061569494 /]# exit
[root@k8s1 ~]# docker ps -a | grep tomcat ##查看启动容器ID:为ee5061569494
ee5061569494 centos:7.6 "/bin/bash" 49 seconds ago Exited (0) 15 seconds ago tomcat
语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
##-m :提交时的说明文字;-a :提交的镜像作者;
[root@k8s1 ~]# docker commit -m="has update" -a="root" ee5061569494 llxxyy/centos7.6-tomcat:v1
sha256:952212f8b4f9e516efd6ee67a4e470dae2fb0b3de140f32731af3ac1903fedff
[root@k8s1 ~]# docker images | grep centos
llxxyy/centos7.6-tomcat v1 952212f8b4f9 20 seconds ago 5.06GB
centos 7.6 32b4fcafa5fa 2 hours ago 5.06GB