Docker 开发使用

330 阅读4分钟

Docker 使用

Docker简介

Docker 架构

环境搭建

Docker 安装

  • Linux(redhat系列) 参考:

CentOS8 安装docker失败

1.卸载旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.社区版安装(docker-ce)

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
#最新版安装
#如果实在CentOS8上进行安装,需要执行此依赖的安装配置
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
yum erase podman buildah  #卸载centos8 上自带的podman容器软件
sudo yum install docker-ce docker-ce-cli containerd.io
#安装指定版本
1.版本查看
yum list docker-ce --showduplicates | sort -r
如:
docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable
#2.版本安装
#VERSION_STRING=(第一个:到第一个-间的就是版本号,如:3:18.09.1-3.el7 --->18.09.1)
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

##启动docker进程
sudo systemctl start docker
sudo systemctl enable docker #开启自启动服务
##测试是否正常安装
sudo docker run hello-world

3.卸载

sudo yum remove docker-ce
#docker数据目录相关删除(image,docker,volume等)
#注意: /var/lib/docker:是默认的存储目录,视实际目录而定
docker info #查看docker详情(Docker Root Dir)
sudo rm -rf /var/lib/docker

Docker配置

docker info # 进行docker安装信息查看

  • docker数据目录迁移
#1.docker数据目录迁移
systemctl stop docker #停服务
mkdir /data/docker/lib   #创建数据目录
rsync -r -avz /var/lib/docker /data/docker/lib #迁移数据
#2.服务配置文件修改 
vim /usr/lib/systemd/system/docker.service
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/data/docker/lib
#3.服务重新加载
 systemctl daemon-reload
 systemctl restart docker
#4.检查
docker info #查看数据目录是否已变化
  • Volume容器目录挂载配置 docker volume --help
docker volume create xxx #宿主机上创建挂载目录(默认:Docker Root Dir下)
  • Docker 镜像源更换
vim /etc/docker/daemon.json  #自行创建daemon.json配置文件
{

  "registry-mirrors": ["https://uxk0ognt.mirror.aliyuncs.com"]

}

常见命令使用

image(镜像)

docker image help
  build       #基于Dockerfile进行镜像构建
  history     #展示镜像构建历史信息
  import      Import the contents from a tarball to create a filesystem image
  inspect     #显示镜像详细信息
  load        Load an image from a tar archive or STDIN
  ls          #列出所有镜像
  prune       #移除未使用的镜像
  pull        #从资源中心拉取镜像、仓库
  push        #推送镜像、仓库到资源中心
  rm          #移除镜像
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

container(容器)

docker container help
  attach      Attach local standard input, output, and error streams to a running container
  commit      #基于现在改动容器的基础上创建新的镜像
  cp          Copy files/folders between a container and the local filesystem
  create      #创建新容器
  diff        Inspect changes to files or directories on a container's filesystem
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  inspect     Display detailed information on one or more containers
  kill        Kill one or more running containers
  logs        Fetch the logs of a container
  ls          List containers
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  prune       Remove all stopped containers
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  run         Run a command in a new container
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  wait        Block until one or more containers stop, then print their exit codes

docker自身配置

docker [command]
  builder     Manage builds
  config      Manage Docker configs
  container   Manage containers
  context     Manage contexts
  engine      Manage the docker engine
  image       Manage images
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  trust       Manage trust on Docker images
  volume      Manage volumes

Docker 可视化管理工具

Portainer

#1.获取镜像
docker pull portainer/portainer
#2.宿主机创建容器的挂载目录
docker volume create portainer_data
#3.启动容器
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

Docker 常见镜像使用

MySQL

#1.镜像下载
docker pull mysql:5.7.34
docker run -p 3306:3306 --name mysql  -v /data/dbs/mysql57/conf:/etc/mysql/conf.d  -v /data/dbs/mysql57/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

Redis

#下载最新版redis
docker pull redis
#宿主机目录配置
创建:
/data/dbs/redis/conf #配置目录
/data/dbs/redis/data #数据存储目录
#启动服务
docker run -p 6379:6379 -v /data/dbs/redis/conf:/usr/local/etc/redis -v /data/dbs/redis/data:/data  --name local_redis  -d redis

Nginx