Docker常用其他命令
删除镜像
1、停止根据该镜像创建的容器
2、删除根据该镜像创建的容器
3、删除该镜像
后台启动容器
#命令 docker run -d 镜像名
[root@aliyun /]# docker run -d centos
#问题 docker ps 发现cnetos停止了
#docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
查看容器中进程信息ps
#命令 docker top 容器id
[root@aliyun ~]# docker top fc161a86d6f6
查看镜像的元数据
#命令 docker inspect 容器id
[root@aliyun ~]# docker inspect fc161a86d6f6
进入当前正在运行的容器
#方法1
#命令 docker exec -it 容器id bashshell 进入容器后开启一个新的终端,可以在里面操作(常用)
[root@aliyun ~]# docker exec -it fc161a86d6f6 /bin/bash
[root@fc161a86d6f6 /]# ps
PID TTY TIME CMD
27 pts/1 00:00:00 bash
40 pts/1 00:00:00 ps
[root@fc161a86d6f6 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
#方法2
#命令 docker attach 容器id 进入容器正在执行的终端,不会启用新的进程
[root@aliyun /]# docker attach fc161a86d6f6
从容器内拷贝文件到主机
#命令 docker cp 容器id:容器内路径 目的的主机路径
[root@aliyun home]# docker cp fc161a86d6f6:/home/test.java /home/
安装Nginx
#搜索镜像 search
#下载镜像 pull
[root@aliyun ~]# docker search nginx
[root@aliyun ~]# docker pull nginx
[root@aliyun ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 4bb46517cac3 2 weeks ago 133MB
#-d 后台运行
#--name 给容器命名
#-p 宿主机端口:容器内部端口
[root@aliyun ~]# docker run -d --name nginx01 -p 3344:80 nginx
a8ad30ed4106de005d0963506d7289f58c6000353093bd2c8ba3d876b5fbde4f
[root@aliyun ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a8ad30ed4106 nginx "/docker-entrypoint.…" 19 seconds ago Up 19 seconds 0.0.0.0:3344->80/tcp nginx01
#测试访问
[root@aliyun ~]# curl localhost:3344
#进入容器
[root@aliyun ~]# docker exec -it nginx01 /bin/bash
root@a8ad30ed4106:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@a8ad30ed4106:/# cd etc/nginx/
root@a8ad30ed4106:/etc/nginx# ls
conf.d fastcgi_params koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf
安装Tomcat
#官方测试使用,用完即删除
docker run -it --rm tomcat:9.0
#运行tomcat
[root@aliyun ~]# docker run -it -p 8080:8080 tomcat
#进入tomcat
[root@aliyun ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d23db2b55fdb tomcat "catalina.sh run" 33 seconds ago Up 32 seconds 0.0.0.0:8080->8080/tcp gifted_darwin
[root@aliyun ~]# docker exec -it d23db2b55fdb /bin/bash
#将webapps.dist下的所有文件复制到webapps目录下
root@d23db2b55fdb:/usr/local/tomcat# ls
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work
root@d23db2b55fdb:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@d23db2b55fdb:/usr/local/tomcat# cd webapps
root@d23db2b55fdb:/usr/local/tomcat/webapps# ls
ROOT docs examples host-manager manager
root@d23db2b55fdb:/usr/local/tomcat/webapps# exit
exit
#将操作过的容器通过commit命令提交为一个新的镜像,以后可以使用修改过的镜像
[root@aliyun ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d23db2b55fdb tomcat "catalina.sh run" 7 minutes ago Up 7 minutes 0.0.0.0:8080->8080/tcp gifted_darwin
#-a 作者
#-m 信息
[root@aliyun ~]# docker commit -a="zhangjingwen" -m="add webapps app" d23db2b55fdb tomcat02:1.0
sha256:7daa9abc8af79bcc9435d536fc09cf1294adeb567b3d9284554246b147c896ae
[root@aliyun ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat02 1.0 7daa9abc8af7 7 seconds ago 652MB
tomcat latest 2ae23eb477aa 3 weeks ago 647MB
容器数据卷
方式一:直接使用命令来挂载,双向绑定
docker run -it -v 主机目录:容器内目录
#测试 将容器内home目录下的文件挂在到主机内home/ceshi目录下
[root@aliyun /]# docker run -it -v /home/ceshi:/home/ centos /bin/bash
#查看元数据,可查看挂载情况
[root@aliyun ceshi]# docker inspect 5c4967175e92

安装MySQl
#运行容器需要做数据挂载,启动mysql需要配置密码
#-e 环境配置 MYSQL_ROOT_PASSWORD设置root的密码
[root@aliyun ~]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果