docker常用命令
查看有哪些 DOCKER版本
yum list docker-ce --showduplicates | sort -r
搜索可用版本
docker search redis
1.配置DOCKER开机自起
systemctl enable docker
导出镜像
docker save -o postgres.tar postgres:9.5
其中-o和>表示输出到文件,postgres.tar为目标文件,postgres:9.5是源镜像名(name:tag)
导入镜像
docker load -i postgres.tar
其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
2.启动DOCKER
systemctl start docker
3.进入容器
docker exec -it postgres9.5 /bin/bash #postgres9.5是容器名
4.查看所有容器进程(包含已停止的)
docker ps -a
查看容器
docker container ls
Docker ps 查看完整command
docker ps --no-trunc
5.停止容器
docker stop 68f0e2634f3f
6.强制停止容器
docker kill 68f0e2634f3f
删除容器
docker rm 容器名
7.启动已停止的容器
docker start 68f0e2634f3f
Docker容器开机自动启动
docker run --restart=always
如果创建时未指定 --restart=always ,可通过update 命令设置
docker update --restart=always xxx
参考链接:https://www.cnblogs.com/EikiXu/p/10369409.html
8.查看容器日志
docker container logs 68f0e2634f3f
9.查看容器里的进程
docker top 68f0e2634f3f
创建volume
docker volume create my_vol
移除所有本地未使用的卷(慎用)
docker volume prune
查看volume
docker volume ls
查看指定卷的详细信息:
docker volume inspect my_vol
删除卷:(慎用,数据可能丢失,待测试)
docker volume rm my_vol
使用无数据 volume 启动容器
docker run -d \ -it \ -p 80:80 \ --name devtest \ --mount source=my_vol,target=/usr/share/nginx/html \ nginx:latest
docker inspect devtest查看一下挂载详情
"Mounts": [ { "Type": "volume", "Name": "my_vol", "Source": "/var/lib/docker/volumes/my_vol/_data", "Destination": "/usr/share/nginx/html", "Driver": "local", "Mode": "z", "RW": true, "Propagation": "" } ],
使用无数据 volume 启动容器,容器原有的数据会被复制到 volume 中,我们同样的对volume进行修改操作,可以直接反映到容器中。 删除容器,数据没有被删除。
使用有数据 volume 启动容器,容器内的数据就被 volume 覆盖了。删除容器,volume里面的数据会依然存在的。
不提前创建 volume 启动容器, Docker 会给我们自动创建一个 volume,volume 里面的内容是容器复制过来的。
参考链接:https://blog.51cto.com/wzlinux/2047637?source=drt
只读模式挂载 volume
docker run -d \ -it \ -p 80:80 \ --name=nginxtest \ --mount source=nginx-vol,destination=/usr/share/nginx/html,readonly \ nginx:latest
使用命令docker inspect nginxtest查看一下挂载情况。
"Mounts": [ { "Type": "volume", "Name": "nginx-vol", "Source": "/var/lib/docker/volumes/nginx-vol/_data", "Destination": "/usr/share/nginx/html", "Driver": "local", "Mode": "z", "RW": false, "Propagation": "" } ],
容器里面汉字乱码
粗暴的解决办法:删除已有容器, 加上该命令-e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 \ 重新启动容器
容器内的时间与宿主机的时间不一致
参考链接:https://www.cnblogs.com/dadonggg/p/10909567.html
进入容器
cd /etc/
mv localtime localtime_bak
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
在容器和宿主机中查看时间。
在创建容器时,使用该命令 -v /etc/localtime:/etc/localtime \ 可以使容器与宿主机时间一致。
docker容器迁移
粗暴的方法,重新创建好容器,把之前容器所在服务器的持久化文件拷贝过来即可。