docker基本命令
拉取镜像
[root@localhost ~]# docker pull alpine #从镜像仓库中拉取或者更新指定镜像 Using default tag: latest latest: Pulling from library/alpine 29291e31a76a: Pull complete Digest: sha256:eb3e4e175ba6d212ba1d6e04fc0782916c08e1c9d7b45892e9796141b1d379ae Status: Downloaded newer image for alpine:latest docker.io/library/alpine:latest
run
-i: 交互式操作。
-t: 终端。
alpine: alpine镜像。
/bin/sh:放在镜像名后的是命令
docker run -i -t alpine /bin/sh #运行 exit #退出
docker start 容器名/ID
前后台运行
#前台运行
[root@localhost ~]# docker run -it --name web -p 8888:80 nginx
#后台运行
[root@localhost ~]# docker run -d --name web-8888 -p 8888:80 nginx
75d3c6aae3c28cca7fc9307a9a84a84223358c28408d362d091539cae5cf1377
运行时访问容器
docker exec -it ms-server /bin/sh #方法1 docker attach 镜像名称 #方法2
查看状态
docker ps -a
docker images
docker inspect ms-server | grep IPAddress -A 20 #容器信息,并grep出目标以下20行
删除容器
docker stop web-8888 #停止单个容器
docker rm web-8888 #删除单个容器,运行时的docker不让删除,需要先stop掉。
docker container prune #删除所有停止的容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) #启动所有容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2) #停止所有容器
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2) #删除所有容器
docker rmi $(docker images | awk '{print $3}' |tail -n +2) #删除所有镜像
关闭docker
[root@localhost ~]# systemctl stop docker #有些进程会使docker.socker 处于连接状态,需断开这个连接,然后再关闭docker。 Warning: Stopping docker.service, but it can still be activated by: docker.socket [root@localhost ~]# sudo systemctl stop docker.socket #断开这个连接
docker文件系统
--rm 容器运行完毕后会自行删除
-v linux目录:docker目录 将本地目录绑定到了容器的/builds目录下
-w 将当前工作目录设置到/builds
[root@localhost ~]# docker run --rm -v $PWD/hello:/builds -w /builds golang /bin/bash -c "go build main.go" [root@localhost hello]# ls main main.go #在linux系统目录下编译出main可执行文件
日志:
docker logs web-8888 查看日志
导出导入镜像
docker save -o metersphere.tar metersphere:v12.0 (不改名镜像名称和tag) docker load -i metersphere.tar
导出导入容器快照
docker export ms-server> ms-server.tar 导出快照 cat ms-server.tar | sudo docker import - ms-server:v12.0 导入快照