当然,第一步,就是去拉取人家的镜像,docker pull
镜像删除 docker rmi xxx(镜像id)
有了镜像之后,就可以开始构建容器了,用镜像 image 取构建容器
docker run -d -p 3306:3306 -v mysql-data:/var/lib/mysql --name=mycontainer mysql:8.0
然后开始查看容器 docker ps
docker stop xxx(容器id)
docker restart xxx(容器id)
进入容器 docker exec -it xxx(容器id) /bin/bash
很多时候,我们发现人家的镜像缺少我们的一些扩展,这个时候我们可以在容器里面安装自己的扩展
然后从新构建自己的镜像,再用这个镜像创建的容器,就会有我们的扩展了
docker commit xxxx(容器id) image:v1(新的镜像名称:版本号)
当然我们也可以用Dockerfile的方式来写
FROM nginx:1.12.2
ADD ./ /user/share/nginx/html/
这个意思就是从 nginx:1.12.2的镜像来,在启动容器的时候就把当前文件夹下的东西放在nginx那边的文件夹下面,,类似 docker cp xxx xxxx(镜像):/dahshs/asdasd/asdasd
当然在正式环境的时候,会需要很多镜像,如果一个一个镜像的启动管理,就很麻烦,这个时候我们可以用docker-compose.yml 来批量创建容器,批量管理容器
例子内容:
version: '3'
services:
nginx:
image: nginx:1.12.2
ports: - "8089:80"
depends_on: - php
volumes: - "$PWD/html:/usr/share/nginx/html"
networks: - app_net
container_name: "docker-www-nginx"
php:
image: php:7.4-fpm
ports: ["9000"]
volumes: - "$PWD/html:/var/www/html"
networks: - app_net
container_name : "docker-www-php"
networks:
app_net:
docker-compose up
docker-compose up -d //构建这个docker-compose.yml
如果名字不是docker-compose.yml 可以指定名字
docker-compose -f server.yml up -d