docker常用操作

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设置容器别名。

原文地址:https://www.cnblogs.com/xiaofengfree/p/12779020.html