1)创建docker容器时,将配置文件指定的宿主机上
docker run -p 80:80 --name docker-test -d -v /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx
2)docker cp 复制命令
如果不进容器,在宿主机上操作也可以用docker命令实现宿主机和容器内部的文件交互,以下是在宿主机操作
把宿主机上的文件复制到docker容器内部
docker cp /path/filename 容器id或名称:/path/filename
也可以把docker容器内部的文件复制到本地
docker cp 容器id或名称:/path/filename /path/filename
3) docker 启动、重新启动容器后进入交互终端
1、查看目前正在运行容器,获取容器ID
2、交互式的方式再次进入容器:
docker exec -it 容器ID bin/bash
或者:
docker attach 容器ID
4) Docker创建Mysql容器
docker run --name mysql --restart=always -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
--restart=always,当 Docker 重启时容器自动启动
未设置自动启动的容器
docker container update --restart=always 容器名字
5) 停止所有docker容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
启动所有docker容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
6) 修改docker默认的存储位置
docker 的所有images及相关信息存储位置为:/var/lib/docker
查看默认的docker存储路径
docker info |grep 'Docker Root Dir'
WARNING: No swap limit support
Docker Root Dir: /var/lib/docker
7) docker默认的存储位置
docker 的所有images及相关信息存储位置为:/var/lib/docker
查看默认的docker存储路径
docker info |grep 'Docker Root Dir'
WARNING: No swap limit support
Docker Root Dir: /var/lib/docker
8) 创建Dockerfile文件
FROM node:8.4 COPY . /app WORKDIR /app RUN npm install --registry=https://registry.npm.taobao.org EXPOSE 3000
上面代码一共五行,含义如下。
FROM node:8.4:该 image 文件继承官方的 node image,冒号表示标签,这里标签是8.4,即8.4版本的 node。 COPY . /app:将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录。 WORKDIR /app:指定接下来的工作路径为/app。 RUN npm install:在/app目录下,运行npm install命令安装依赖。注意,安装后所有的依赖,都将打包进入 image 文件。 EXPOSE 3000:将容器 3000 端口暴露出来, 允许外部连接这个端口。
创建 image 文件
有了 Dockerfile 文件以后,就可以使用docker image build命令创建 image 文件了。
$ docker image build -t koa-demo . # 或者 $ docker image build -t koa-demo:0.0.1 .
上面代码中,-t参数用来指定 image 文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是latest。最后的那个点表示 Dockerfile 文件所在的路径,上例是当前路径,所以是一个点。
如果运行成功,就可以看到新生成的 image 文件koa-demo了。
docker image ls
9) 创建postgresql数据库
docker run -p 5432:5432 -v /home/docker/postgresql/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=password -e TZ=PRC -d --name=my-postgres postgres:12
-p 端口映射,将宿主机的5432端口映射到容器的5432端口;
-v 挂载数据卷,这样postgresql的数据会保存在宿主机的/home/docker/postgresql/data下面;
-e设置环境变量
POSTGRES_PASSWORD设置超管postgres的登录密码;
TZ=PRC设置时区为上海时区;
-d后台运行;
--name设置容器别名。