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容器迁移
粗暴的方法,重新创建好容器,把之前容器所在服务器的持久化文件拷贝过来即可。

 

posted @ 2020-08-24 09:15  邓旭阳  阅读(159)  评论(0)    收藏  举报