docker常用命令
这是小白学习时候用到的一些docker命令,后面会继续更新,希望可以提供给大家帮助
1.docker容器访问其他容器服务:docker run -d --network host -p 8081:8081 xxxxxxxx:v3
2.docker-compose:是基于docker-compose.yml,通常启动的时候是一个服务,这个服务通常由多个container共同组成,并且端口,配置等由docker-compose定义好。
3.启动docket:systemctl start docker
4.设置docker开机启动:systemctl enable docker
5.启动一个mysql的docker镜像:sudo docker run --name mysqltest -p 3306:3306 -e MYSQL_ROOT_PASSWORD=ruyi123456 -v /data/mysql:/var/lib/mysql -d docker.io/mysql
6.从容器中拷贝文件到宿主机:docker cp 【CONTAINER ID】:【路径】文件名 【宿主机的绝对路径+文件名】
7.docker服务重启后容器也自动重启:docker run --restart=always / docker update --restart=always <CONTAINER ID>
8.Docker保存多个镜像到tar中:docker save [images] [images] > [name.tar]
9.Docker导出镜像到环境 :docker load<[name.tar]
10.Dockerfile 创建镜像,标签为 runoob/ubuntu:v1:docker build -t runoob/ubuntu:v1 .
11.查看docker磁盘使用:docker system df
12.删除所有未使用的本地卷:docker volume prune
13.清理所有处于终止状态的容器:docker container prune / docker rm `docker ps -a | grep Exited | awk '{print $1}'`
14.清理所有未使用的镜像:docker rmi -f `docker images | grep '<none>' | awk '{print $3}'`
15.进入docker容器内部:sudo docker attach 44fc0f0582d9
16.查看docker容器的cpu及内存的使用情况:docker stats
具体使用方法参考链接:
https://blog.csdn.net/hu_jinghui/article/details/80198492
17. 更新已经启动容器的参数
如果已经启动了则可以使用如下命令:
docker update --restart=always <CONTAINER ID>
18. dockerfile中参数-Djava.security.egd=file:/dev/./urandom
docker+tomcat 启动时非常慢,一般正常启动几十秒的,发现docker+tomcat启动竟需要几分钟,不可思议
Tomcat 7/8 都使用 org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 类产生安全随机类 SecureRandom 的实例作为会话 ID,SecureRandom generateSeed 使用 /dev/random 生成种子。但是 /dev/random 是一个阻塞数字生成器,如果它没有足够的随机数据提供,它就一直等,这迫使 JVM 等待。键盘和鼠标输入以及磁盘活动可以产生所需的随机性或熵。但在一个服务器缺乏这样的活动,可能会出现问题。
有2种解决方案:
1. 在Tomcat环境中解决:
可以通过配置 JRE 使用非阻塞的 Entropy Source:
在 catalina.sh 中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。
2. 在 JVM 环境中解决(本人使用此方法):
打开jdk安装路径 $JAVA_PATH/jre/lib/security/java.security 这个文件,找到下面的内容:
securerandom.source=file:/dev/random
替换成:
securerandom.source=file:/dev/./urandom
如果是采用docker的方式启动,则在启动命令中加入-Djava.security.egd=file:/dev/./urandom 这样一行