Docker的基本使用

154 阅读1分钟

一、Docker的安装

1.使用官方安装脚本自动安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内 daocloud 一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

2.卸载

删除安装包:

yum remove docker-ce

删除镜像、容器、配置文件等内容:

rm -rf /var/lib/docker

二、配置阿里云的镜像

地址可以去阿里云中的容器服务中获取,如下图

image.png

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

三、Docker的基本命令

1.Docker服务相关命令

  • 启动Docker服务
systemctl start docker
  • 停止Docker服务
systemctl stop docker
  • 重启Docker服务
systemctl restart docker
  • 查看Docker服务状态
systemctl status docker
  • 设置开机自启动Docker服务
systemctl enable docker

2.Docker镜像常用相关命令

  • 查看本地镜像
docker images
  • 网络上搜索镜像
docker search xxxx
  • 拉取镜像
docker pull xxx
#带版本号,去docker hub上查看
docker pull redis:6.0
  • 删除镜像
#xxx可以为镜像名称或者前4位id
docker rmi xxx
#删除全部镜像
docker rmi`docker images -q`

3.Docker容器相关命令

  • 查看容器
#查看运行容器
docker ps
#查看历史运行容器
docker ps -a
  • 创建容器
docker run
-i #一直运行
-t #分配终端可以执行命令
-d #后台运行连接
--name #起名
-p #将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
-it # 交互式
-id #守护式
#例子
#xxxx镜像为id或名称
docker run --name=mynginx -p 80:80 -d xxxx
  • 进入容器
#xxxx镜像为id或名称
docker exec -it xxxx /bin/bash
  • 启动容器
#xxxx镜像为id或名称
docker start xxxx
  • 启动容器
#xxxx镜像为id或名称
docker stop xxxx
  • 删除容器
#xxxx镜像为id或名称
docker rm xxx
#删除全部
docker rm `docker ps -aq`
  • 查看容器信息
#xxxx镜像为id或名称
docker inspect xxxx

四、Docker容器的数据卷

什么是数据卷

数据卷(volume) 是一个虚拟目录,指向宿主机文件系统中的某个目录。 image-20210731173541846.png

一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。

这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了

数据卷常用命令

#docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:
docker volume [COMMAND]
create #创建一个volume
inspect #显示一个或多个volume的信息
ls #列出所有的volume
prune #删除未使用的volume
rm #删除一个或多个指定的volume

配置数据卷

docker run ... -v 宿主机目录文件:容器内目录文件
#例子 -v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中
docker run \
  --name mynginx \
  -v html:/root/html \
  -p 80 :80
  nginx \

五、Docker应用部署

  • mysql
docker run -id \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /usr/local/mydocker/mysql/log:/var/log/mysql \
-v /usr/local/mydocker/mysql/data:/var/lib/mysql \
-v /usr/local/mydocker/mysql/config:/etc/mysql/conf.d \
mysql
  • tomact
docker run -id \
--name=tomcat-0 \
-v /usr/local/mydocker/tomcat:/usr/local/tomcat/webapps \
-p 8080:8080\
tomcat

image.png

image.png

  • nginx
docker run -id \
--name=tomcat-0 \
-v /usr/local/mydocker/tomcat:/usr/local/tomcat/webapps \
-p 8080:8080\
tomcat
  • nginx
docker run -id \
--name=nginx-0 \
-p80:80 \
-v/usr/local/mydocker/nginx/config/nginx.conf:/etc/nginx/nginx.conf \ 
-v /usr/local/mydocker/nginx/logs:/var/log/nginx \
-v /usr/local/mydocker/nginx/html:/usr/share/nginx/html \ 
nginx

image.png

六、镜像制作

1.容器转为镜像

docker commit 容器id 镜像名称:版本号
docker save -o 压缩包名称 镜像名称:版本号
docker load -i 压缩文件名称

2.Docker File

常用语法:

image-20210731180321133.png

更新详细语法说明,请参考官网文档: docs.docker.com/engine/refe…

例子:部署一个jar包

创建一个新目录,目录下创建一个docker_file文件并编写

FROM java:8
MAINTAINER zhf <1978127452@qq.com>
ADD ./demo.jar ./app.jar
CMD java -jar ./app.jar

构建镜像

docker build -f ./springboot_dockerfile -t app .

使用docker run创建容器并运行

image.png

七、Docker-Compose

1.安装

#下载
curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

#设置文件可执行
chmod +x /usr/local/bin/docker-compose

#查看版本
docker-compose -version

#卸载 删除二进制文件即可
rm /usr/local/bin/docker-compose

2.编排

version: "2.0"
services:
  nginx:
    image: 
      nginx
    ports:
     - 80:80
    links:
     - app
    volumes:
     - /usr/local/mydocker/nginx/config:/etc/nginx/conf.d
  app:
    image: 
      app
    expose:
     - "9000"      

3.启动

docker-compose up -d

image.png