1120 字
6 分钟
Docker经验总结
参考链接
Docker Desktop for Windows By Docker
Getting Started with Docker Desktop for Windows
Change Docker images location in Windows——Paolo Brocco Works
[
说明
Docker is a full development platform to build, run, and share containerized applications.
Docker 是全开发平台构建、运行和共享容器化应用。
你可以在docker安装linux和windows的容器,通俗来讲类似于虚拟机,但与虚拟机不同。
Getting Started
- 使用以下命令可查询docker的版本
docker --version- 使用以下命令,Pull一个镜像用于测试
docker run hello-world会有以下结果
docker : Unable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-world1b930d010525: Pull completeDigest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5fStatus: Downloaded newer image for hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly....- 使用以下命令可以列出所有已经存在的镜像
docker image ls- 使用以下命令显示详细的所有容器信息
docker container ls --all显示结果如下
| CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
|---|---|---|---|---|---|---|
| 0d6b52ebfb01 | hello-world | ”/hello” | 21 hours ago | Exited (0) 21 hours ago | kind_satoshi |
- 以下命令可以查看帮助
docker --helpdocker container --helpdocker container ls --helpdocker run --help国内镜像源
由于官方docker hub镜像源,是国外的,在国内速度比较缓慢,国内可以替换是国内的镜像源。
官方docker hub:https://hub.docker.com
官方镜像源:https://www.docker-cn.com/registry-mirror
阿里云镜像源:https://dev.aliyun.com/
如何更换镜像源,可参考Docker之如何更换国内镜像
常用命令
linux安装docker
sudo apt install -y docker.iosudo service docker start #启动docker服务sudo usermod -aG docker ${USER} #当前用户加入docker组,可以当前用户操作docker重启 docker
sudo systemctl daemon-reloadsudo systemctl restart dockerdocker pull从镜像源中,拉取一个镜像到本地
docker pull <image># image,是镜像名称docker search 从镜像源中,搜索指定镜像
docker search <image># image 是镜像名称docker images查看本地所有镜像
docker images
docker remove images删除本地镜像
docker rmi <IMAGE ID>docker run
# 根据镜像创建容器,没有对应镜像时自动从镜像源中下载docker run [OPTIONS] IMAGE [COMMAND] [ARG...]# -d 后台运行容器# -e 设置环境变量# --expose/-p 宿主端口:容器端口# --name 容器名称# --link 链接不同容器名称# -v 宿主目录:容器目录挂载磁盘卷docker start/stop 启动或者停止容器
docker start/stop <container name>docker ps查看容器信息
docker ps <container name>docker logs查看容器日志
docker logs <container name>删除容器
docker rm <container name or id>一些常用容器的创建命令
mongo
先把mongo镜像摘取下来
docker pull mongo运行mongo容器
docker run --name <container name> -p <localPort>:<containerPort> -v <localDisk>:<containerDisk> -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin -d mongo# --name <container name> 指定要运行的容器名称# -p <localPort>:<containerPort> 把本地端口与容器里面的端口进行映射# -v <localDisk>:<containerDisk> 把本地的磁盘地址与容器磁盘地址进行映射# -e MONGO_INITDB_ROOT_USERNAME=admin 在容器创建MONGO_INITDB_ROOT_USERNAME的环境变量,在mongo官方有说明# -e MONGO_INITDB_ROOT_PASSWORD=admin 在容器中创建MONGO_INITDB_ROOT_PASSWORD的环境变量,在mongo官方有说明# -d mongo 指定一个叫mongo的镜像
# 完整示例如下docker run --name mongo -p 27017:27017 -v ~/docker-data/mongo:/data/db -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin -d mongoredis
docker run --name redis -d -p 6379:6379 redis# --name redis 指定容器名称为redis# -d 后台运行容器# -p 6379:6379 把本地端口与容器里面的端口,指定容器端口号为6379# redis 镜像名为redis创建一个纯净的centos
docker pull centosdocker run --name oracle -p 8128:8128 -v G:\docker\oracle12c2:/oracle12c2 -d centosmysql
duso docker run -p 3306:3306 --name mysql \-v <local disk eg:c:/mysql/conf>:/etc/mysql \-v <local disk eg:c:/mysql/logs>:/var/log/mysql \-v <local disk eg:c:/mysql/data>:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=123456 \-d mysql
# 不使用MYSQL_USER创建用户,可能会创建失败
docker run --name mysql -d -p 3306:3306 -v G:\docker\mysql:/var/lib/mysql -e MYSQL_DATABASE=test -e MYSQL_USER=market -e MYSQL_PASSWORD=market -e MYSQL_ROOT_PASSWORD=root mysqldaemon.js常用配置
修改镜像源为国内镜像源
修改images安装位置
Change Docker images location in Windows——Paolo Brocco Works
桌面版本直接右键任务栏图标,点击Dashboard,点设置,再自己设置

添加以下配置到daemon.js中去
"graph": "your local directory"以下为示例
{ "registry-mirrors" : [], "insecure-registries" : [], "debug" : true, "experimental" : true, "graph": "D:\\ProgramData\\Docker"}需要注意的问题
docker运行后自动退出了
docker容器刚运行就自动退出了——博客园@zippo_123
这是需要docker规定创建必须有一个携带的命令,所以创建容器的命令参考:
docker run --name <container name> -d centos ping 8.8.8.8
进入bash则可以输入这样的命令:
docker exec -it oracle bash Docker经验总结
https://iszengmh.pages.dev/posts/docker经验总结/