Docker入门

一、安装

1、linux 安装(老师的方法:)

2、内核升级(CentOS6.X 升级内核 至 3.10)

3、阿里云的docker镜像仓库

4、卸载

  • yum list installed | grep docker
  • yum -y remove docker-engine.x86_64
  • rm -rf /var/lib/docker

5、操作工具nsenter的安装

6、windows安装

二、操作

1、client 中的操作命令

  • docker build --创建
  • docker pull --拉取
  • docker search nginx --在docker hub上查找nginx
  • docker run --name <设置容器名字> --运行镜像
  • docker run -dit -p 80:80 nginx --运行nginx镜像
  • docker images --查看本地已有的镜像
  • docker rmi <image_id> 删除镜像
  • docker ps -- 查看正在运行的容器信息
  • docker ps -a --查看所有状态的容器信息
  • docker stop <CONTAINER ID> --停止容器
  • docker start <CONTAINER ID> --重新启动容器
  • docker rm <container_name> --删除容器(docker rm)
  • docker rm $(docker ps -a -q) --删除所有容器
  • docker tag <镜像地址(ip:端口不写就是当前登录的仓库)>  <目标镜像名(192.168.8.175:40080也只是名字的一部分)>  --打包镜像(一般用于版本管理)
  • eg:docker tag reg.meicloud.com:40443/aps-std/sit/aps-backend-pp-sit:1.0.59 192.168.8.175:40080/app/aps-backend-pp:1.0.60
  • docker push 镜像地址 --推送到仓库
  • eg:docker push 192.168.8.175:40080/app/aps-backend-pp:1.0.60

2、docker 进入容器,及docker 的相关命令

  • 使用docker attach命令(只要这个连接终止,或者使用了exit命令,容器就会退出后台运行) : docker attach <name> 或者 docker attach <id>
  • 使用docker exec命令(命令使用exit命令后,不会退出后台,一般使用这个命令):docker exec -it <name> /bin/bash 或者 docker exec -it <id> /bin/bash
  • ctrl+p ctrl+q 退出

三、在现有的容器上,创建新的镜像

  • docker commit -m 'fun' <CONTAINER ID> <new_image_name>

四、Dockerfile的使用

1、创建一个Dockerfile内容:

  • mkdir workdir
  • cd ./workdir
  • touch Dockerfile
FROM alpine:latest
MAINTAINER anquing
CMD echo "hello Docker"

2、创建镜像

  • 在Dockerfile文件同级目录执行:
docker build -t hello_docker .
  • 查看:
docker images
  • 执行测试:
docker run hello_docker

3、语法

命令用途
FROM base image
RUN 执行命令
ADD 添加文件
COPY 拷贝文件
CMD 执行命令
EXPOSE 暴露端口
WORKDIR 指定路径
MAINTAINER 维护者
ENV 设定环境
ENTRYPOINT 容器入口
USER 指定用户
VOLUME mount point

五、Volume的使用,提供独立于容器外的持久存储

1、持久化到docker中

docker run  -d --name nginx -p 80:80 -v /usr/share/nginx/html nginx

说明:在80端口启动nginx容器,设置容器名为nginx,及将/usr/share/nginx/html下文件永久保存在docker中的某个目录下

  • 检验
docker inspect nginx

会看到

"Volumes": {
        "/usr/share/nginx/html": "/var/lib/docker/volumes/816ec5662f5254cc6c3cdd3296bbb094587ceb0ea52b59aeb34103e387feef47/_data"

在以下目录对文件进行修改后,容器中对应的文件也会变化

cd /var/lib/docker/volumes/816ec5662f5254cc6c3cdd3296bbb094587ceb0ea52b59aeb34103e387feef47/_data

echo hello >index.html

docker exec -it <CONTAINER ID> /bin/bash

cd /usr/share/nginx/html

cat index.html

2、持久化到本地主机中

docker run  -d --name nginx -p 80:80 -v $PWD/html:/usr/share/nginx/html nginx

说明:在80端口启动nginx容器,设置容器名为nginx,及将/usr/share/nginx/html下文件永久保存在本地主机执行命令时的目录下的html子目录下

在$PWD/html目录下操作:

touch index.html

echo '<html><h1>docker<h1></html>' >index.html

curl http://localhost

输出:<html><h1>docker<h1></html>

3、持久化到本容器以外的容器中

docker run -it --volumes-from <CONTAINER ID> ubnutu /bin/bash 

说明:-it 及 /bin/bash 作用是直接进入容器的交互中

  • 验证(使用ubuntu镜像):为了方便,先创建一个容器,将容器某个目录持久化到本地某个目录下。然后新的容器持久化此容器中,就等于间接地持久化本地目录中,方便操作
docker create -v $PWD/data:/var/mydata --name data_container ubuntu

docker run -it --volumes-from data_container ubnutu /bin/bash

六、registry的使用,registry注册服务器 管理 repository(镜像仓库)

1、术语

英文中文
host 宿主机
image 镜像
container 容器
registry 仓库
daemon 守护程序
client 客户端

2、客户端命令

  • docker search whalesay
  • docker pull docker/whalesay
  • docker run docker/whalesay cowsay Docker 很好玩! 以下是提交:
  • docker tag docker/whalesay anquing/whalesay
  • docker images
  • docker login 回车,输入账号及密码
  • docker push anquing/whalesay

3、国内的一些仓库

  • daocloud
  • 时速云
  • aliyun

七、docker-compose的使用,多容器app

1、独立安装

3、实战

  • 将所有的容器的Dockerfile文件都创建在总目录/容器名(自定义)下,如果有其他配置文件,也在这个目录下创建
  • 在总目录下创建docker-compose.yml文件
  • docker-compose up -d --启动
  • docker-comose stop --停止
  • 如果修改过容器的配置文件,在up之前先docker-compose build

4、docker-compose.yml常用命令

命令用途
build 本地创建镜像
command 覆盖缺省命令
depends_on 连接容器
ports 暴露端口
volumes
image pull镜像
up 启动服务
stop 停止服务
rm 删除服务中的各个容器
logs 观察各个容器的日志
ps -a 列出服务相关容器 
posted @ 2023-08-13 14:25  咔咔皮卡丘  阅读(19)  评论(0编辑  收藏  举报