一、Docker 基本命令
# 查看docker的版本信息 docker -v # 查看docker的基本信息,例如多少镜像,多少个容器等 docker info # 查看docker命令 docker help # 查看本地docker镜像 docker images # 启动 systemctl start docker # 守护进程重启 sudo systemctl daemon-reload # 重启docker服务 systemctl restart docker # 重启docker服务 sudo service docker restart # 关闭docker service docker stop # 关闭docker systemctl stop docker # 启动容器 docker run 镜像名:版本号 docker run hello-world:latest # 查看正在运行的容器 docker ps # 列出所有容器ID docker ps -aq # 停止所有容器 docker stop $(docker ps -aq) # 停止单个容器 docker stop 要停止的容器名 docker stop 容器ID 平滑停止 docker kill 容器ID 暴力停止 # 删除单个容器 docker rm 要删除的容器名 docker rm [-f] 容器ID 强制删除,可以删除正在运行的容器 # 删除所有容器 docker rm $(docker ps -aq) # 删除单个镜像 docker rmi 镜像名:版本号 docker rmi mysql:5.7.26 # 删除所有镜像 docker rmi $(docker images -q) # 显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID sudo docker ps -a|grep Exited|awk '{print $1}' # 查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器 sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'` # 删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了) sudo docker rm $(sudo docker ps -a -q) # 根据容器的状态,删除Exited状态的容器 sudo docker rm $(sudo docker ps -qf status=exited) # 查看最近运行的两个容器 docker ps -n 2 # 以交互的模式启动容器 docker run -i -t centos # 退出容器 exit 关闭容器并退出 ctrl+p+q 容器不关闭,只是退出 # 后台启动容器 docker run -d centos # 查看容器的日志 -t显示日志的时间,-f监视日志的增长 docker logs -t -f 容器ID # 进入已退出的容器 docker attach 容器ID # 不进入容器,但是执行容器的操作 docker exec 容器ID ls # 数据卷 /localData 宿主机里面的文件夹 /dockerData 容器里面的文件夹 docker run -it -v /localData:/dockerData centos:8.0 # 备份镜像 docker save 8.0:centos -o /home/qiang/docker/centos-8.0.tar.gz # 导入镜像 docker load -i centos-8.0.tar.gz # 修改镜像的仓库名和版本号 docker tag [IMAGE ID] [REPOSITORY名]:[TAG标识] docker tag 0f3e07c0138f docker.io/centos:8.0.1959 # 获取docker容器中的root权限,容器在执行状态 sudo docker exec -it -u root 容器ID bash 前提在run docker容器时候加上参数 --privileged=true # 查看容器的信息 docker inspect 容器ID # 进入容器 docker exec -it 容器ID /bin/bash docker exec -it 容器ID /bin/sh # 拉取镜像 docker pull 镜像名:版本号 docker pull mysql:5.7.26 # 拉取指定位置仓库的镜像 docker pull b3log/solo
二、Dockerfile
# 指定基础镜像 FROM centos:8.0 # 作者的信息 MAINTAINER 875667601@qq.com # 执行什么命令 RUN yum install -y vim # 容器对外暴露的端口 EXPOSE 80 # 进入到容器后进入到哪个目录 WORKDIR /usr/local/ # 配置环境变量 ENV JAVA_HOME=/datas/jdk1.8.0_60 ENV PATH=$JAVA_HOME/bin:$PATH # 将文件拷贝到镜像中并解压 ADD jdk-8u60-linux-x64.tar.gz /datas/ # 将文件拷贝到镜像中 ADD jdk-8u60-linux-x64.tar.gz /datas/ # 配置数据卷 VOLUME ["/containerDataVolumn"] # 容器启动时候执行的命令 CMD /bin/bash # 容器启动时候执行的命令 ENTRYPOINT ["echo", "hello"]
# 构建镜像,注意后面还有个点 docker build -t mycentos:8.0 .
三、修改 Docker 为阿里镜像
xxxxx 具体去阿里云官网看
vim /etc/docker/daemon.json { "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"] } #重新加载守护进程 sudo systemctl daemon-reload #重启docker服务 sudo systemctl restart docker
四、启动和进入 MySQL
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.26 docker exec -it mysql bash
五、启动参数说明
docker run --detach或-d 后台运行 --rm 容器停止或退出就删除 --network=host 容器的端口都对应主机的端口,不存在映射 --env或-e 设置系统的环境变量 --name 启动容器后的名字 --restart=always docker重启时容器也重启
六、从 Docker 容器复制文件
docker cp solo:/opt/solo/skins/nijigen /localData/solo/skins/nijigen
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于