Docker

docker

安裝docker

sudo curl -sSL get.docker.com | sh

获取镜像 运行 列出镜像

docker pull ubuntu:18.04

# -it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端
# --rm:这个参数是说容器退出后随之将其删除。默认情况下,为了排障需求,退出的容器并不会立即删除,除非手动 docker rm。我们这里只是随便执行个命令,看看结果,不需要排障和保留结果,因此使用 --rm 可以避免浪费空间。
# bash:放在镜像名后的是 命令,这里我们希望有个交互式 Shell,因此用的是 bash
docker run -it --rm ubuntu:18.04 bash

# 这条命令会用 nginx 镜像启动一个容器,命名为 webserver,并且映射了 80 端口,这样我们可以用浏览器去访问这个 nginx 服务器。
docker run --name webserver -d -p 80:80 nginx
sudo docker start webserver
 
# 我们可以使用 docker exec 命令进入容器,修改其内容。
# 我们以交互式终端方式进入 webserver 容器,并执行了 bash 命令,也就是获得一个可操作的 Shell。
# 然后,我们用 <h1>Hello, Docker!</h1> 覆盖了 /usr/share/nginx/html/index.html 的内容
docker exec -it webserver bash

# 我们修改了容器的文件,也就是改动了容器的存储层。我们可以通过 docker diff 命令看到具体的改动。
docker diff webserver

# 要知道,当我们运行一个容器的时候(如果不使用卷的话),我们做的任何文件修改都会被记录于容器存储层里。而 Docker 提供了一个 docker commit 命令,可以将容器的存储层保存下来成为镜像。换句话说,就是在原有镜像的基础上,再叠加上容器的存储层,并构成新的镜像。以后我们运行这个新镜像的时候,就会拥有原有容器最后的文件变化
# docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
docker commit \
    --author "Tao Wang <twang2218@gmail.com>" \
    --message "修改了默认网页" \
    webserver \
    nginx:v2

# 我们还可以用 docker history 具体查看镜像内的历史记录
docker history nginx:v2


# 列表包含了 仓库名、标签、镜像 ID、创建时间 以及 所占用的空间。
# 你可以通过 docker system df 命令来便捷的查看镜像、容器、数据卷所占用的空间。
docker image ls

# 一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除
docker image prune

#  中间层镜像
# 默认的 docker image ls 列表中只会显示顶层镜像,如果希望显示包括中间层镜像在内的所有镜像的话,需要加 -a 参数
docker image ls -a

# 删除本地镜像
# 《名字》可以是 镜像短 ID、镜像长 ID、镜像名 或者 镜像摘要。
docker image rm 《名字》

挂载一个主机目录作为数据卷

# 加载主机的 /src/webapp 目录到容器的 /usr/share/nginx/html目录
docker run -d -P \
    --name web \
    # -v /src/webapp:/usr/share/nginx/html \
    --mount type=bind,source=/src/webapp,target=/usr/share/nginx/html \
    nginx:alpine
    
# 查看数据卷的具体信息
docker inspect web

# rust
sudo docker run -it --mount type=bind,source=/home/test/rust,target=/home/rust -w="/home/rust" rust bash

# ruby
sudo docker run -it --mount type=bind,source=`pwd`,target=/home -w="/home" ruby bash

容器

# 终止状态的容器可以用 docker container ls -a 命令看到
docker container ls -a

# 处于终止状态的容器,可以通过 docker container start 命令来重新启动。
# docker container restart 命令会将一个运行态的容器终止,然后再重新启动它

docker-compose 安装

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

mkdir qinglong
wget https://raw.githubusercontent.com/whyour/qinglong/master/docker-compose.yml

# 启动
docker-compose up -d
# 停止
docker-compose down

Ref

https://yeasy.gitbook.io/docker_practice/image/pull

Powered by Jekyll and Theme by solid

本站总访问量