docker基本命令

docker运行

systemctl start docker
systemctl status docker
docker version

# systemctl stop docker    #有些进程会使docker.socker 处于连接状态,需断开这个连接,然后再关闭docker。
Warning: Stopping docker.service, but it can still be activated by:
docker.socket

# sudo systemctl stop docker.socket #断开这个连接

 

容器操作

#运行方法1: 前台运行(交互)
[root@localhost ~]# docker run -it --name web -p 8888:80 nginx

#运行方法2: 后台运行
[root@localhost ~]# docker run -d --name web-8888 -p 8888:80 nginx
75d3c6aae3c28cca7fc9307a9a84a84223358c28408d362d091539cae5cf1377

#运行方法3:
docker start 容器名/ID
#运行方法4:交互式运行,和方法1有什么区别呢?
docker run -i -t alpine /bin/sh  #运行

exit  #退出镜像

docker ps -a

docker run web-8888/id   #启动容器

docker stop web-8888/id  #停止单个容器

docker rm web-8888/id  #删除单个容器,运行时的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 inspect livetranscoder | grep IPAddress -A 20  #容器信息,并grep出目标以下20行

 

运行时访问容器

docker exec -it ms-server /bin/sh    #方法1 容器名
docker exec -it  2360 /bin/bash #方法2 容器号
#docker attach 镜像名称 #方法3
#不推荐,直接连接到容器的主进程(PID 1),也就是启动容器时运行的第一个进程。这种方式会进入容器的主会话,看到的是容器主进程的标准输入、输出和错误流。
#如果主进程是一个交互式 shell(如 bash),那么使用 attach 就类似于进入了这个 shell;
#但如果主进程是一个服务(如 Apache 或数据库),attach 会显示该服务的输出日志,ctl+c 就会使docker退出。

例如:

# docker exec -it user /bin/bash  进入edge-user容器
# cd /usr/local/openresty/nginx/ #容日的nginx目录

 

 

镜像操作


# docker pull alpine  #从镜像仓库中拉取或者更新指定镜像
#镜像导出导入
# 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    导入快照

# docker images 查看镜像 # docker rmi ac9aa07c4186  #docker rmi IMAGE-ID  
--删除掉这个镜像
# docker rmi $(docker images | awk '{print $3}' |tail -n +2) #删除所有镜像

 

 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  查看日志

 

posted @ 2021-10-12 17:03  seven1986  阅读(88)  评论(0)    收藏  举报