docker容器基本操作
关于docker容器的相关命令,可以参考:docker命令说明
创建容器
每运行一个镜像,就会创建一个容器
docker run -itd name 【创建的容器名称】 【启动的镜像名称】
示例:启动tomcat镜像,创建容器tomcat
]# docker run -itd --name tomcat tomcat
启动nginx镜像,创建容器nginx1;映射容器的8080端口到服务器的18880上;将本地目录/opt/nginxconf映射到容器内/nginx/conf/vhosts中;设置容器自启动
]# docker run -itd --name nginx1 -p18800:8080 -v /opt/nginxconf:/nginx/conf/vhosts --restart=always nginx:1.24.0
操作容器
进入容器
进入容器命令行,如同在linux主机上操作/中间件应用
docker exec -it 【容器名称】【执行的命令】
示例:进入tomcat容器命令行
]# docker exec -it tomcat bash
执行容器内命令
示例:查看zbweb1容器中的nginx编译参数
]# docker exec -it zbweb1 /nginx/sbin/nginx -V
查看容器
查看所有容器
]# docker ps -a
查看运行的容器
]# docker ps ]# docker container ls
容器的启停
启动容器
docker start 【容器名称】
停止容器
docker stop 【容器名称】
docker kill 【容器名称】 强制停止容器,相当于kill -9
示例
##启动tomcat容器 ]# docker start tomcat ##重启tomcat容器 ]# docker restart tomcat ##停止tomcat容器 ]# docker stop tomcat ]# docker kill tomcat
复制文件/目录
向容器中复制文件/目录
docker cp 【本地文件】 【容器名称】:【容器内路径】
示例:
##将本地的test1.html文件复制到容器tomcat的/tomcat/webapps路径下 ]# docker cp /opt/test1.html tomcat:/tomcat/webapps ##将本地的zrlog目录复制到容器tomcat的/tomcat/webapps目录下 ]# docker cp /opt/zrlog/ tomcat:/tomcat/webapps
将容器中的文件/目录复制出来
docker cp 【容器名称】:【容器文件路径】 【本地目录路径】
##将php1容器的php.ini文件复制到本地/opt/phptest/目录下 ]# docker cp php1:/php/php.ini /opt/phptest/ ##将var目录复制到本地/opt/phptest/目录下 ]# docker cp php1:/php/var /opt/phptest/
容器特权模式
在特权模式下,容器内的进程将以root用户身份运行,这样容器内的进程就可以访问主机系统的特权级别资源和设备。同时,特权模式下的容器也可以执行一些特权操作,例如加载内核模块、修改网络配置等
需要注意的是,特权模式可能会带来安全风险,因为容器在该模式下可以访问主机上的任何设备和文件系统,甚至可以更改主机上的网络配置。因此,在使用特权模式时,应格外谨慎,并确保只使用必要的权限。
开启特权模式,创建容器时指定"--privileged"参数
例:java容器开启特权模式
一般用于java应用查看堆内存信息
创建容器:
docker run -itd --name jenktest2 --privileged -p18081:18080 jenkins_init:2.401.1
容器时间设置
一般容器内默认的时间为UTC0时区的时间,这样与主机系统时间会有差别
有两种方式,一是在创建容器时,将主机的时间映射到容器中;另一种是在创建容器时指定时区:
主机时间映射到容器中
添加"--volume /etc/localtime:/etc/localtime:ro"参数, /etc/localtime表示当前系统的时区时间
]# docker run -itd --name nginx1 --volume /etc/localtime:/etc/localtime:ro nginx:1.22.1
指定时区
在启动容器时,指定 "-e TZ=Asia/Shanghai" 参数,指定时区为Asia/Shanghai
]# docker run -itd --name tomcattime1 -p 19030:18080 -e TZ=Asia/Shanghai tomcat:8.5.85