在docker上使用redis

目录

 

安装docker

使用docker开启redis

Docker一些常用的命令

pause

docker stop vs kill


安装docker

在win10下安装docker可以直接安装Docker for Windows Installer.exe,但是得把Hyper-V打开,有时候Hyper-V可能会抽风,docker就运行不了——我是从1709更新到1803的,但是在1803下docker一直无法在Linux container下启动,而在这个模式下才可以直接Pull redis,所以我只好把win10往回恢复到1709。嗯,目前是可以用的。

至于win7则需要先DockerToolbox.exe,具体的过程还得再win7装了才知道。

使用docker开启redis

在docker里用“docker pull redis”把redis镜像安装好。运行docker里的镜像会比较占容量,可以通过windows自带的Hyper-V 管理器可以设置虚拟硬盘和虚拟机的路径到非系统盘。

设置好路径后,docker里的Disk image location会自动设置好,其实切换到Linux Container 下,memory的大小不一定要是1280MB(windows下docker使用及注意事项),proxies里面可以设置合适的代理加快下载速度,目前还没需要就没有设置,菜鸟教程里给的是网易的镜像地址(http://hub-mirror.c.163.com)。这样就基本设置好了。

开启Powershell,在里面直接输入docker run -d -p 6379:6379 --name redis00 redis,就可以开启一个redis容器。

上述命令行的部分解释如下:-d表示在后台运行,不阻塞命令行界面,让我们可继续输入其它命令,是detach单词缩写。

-p 表示端口号,左边的6379表示win10系统的端口(自已换其它的也随便),右边的则表表容器中redis端口,并且似乎右边这个必须要设置为6379,虽然可以设置成功,但是在使用这个redis容器的时候会出现错误(Error: Server closed the connection)。

--name表示运行redis镜像的一个实例名称。听别人打过一个比方,把镜像比作一个类,而运行一个镜像就相当于实例化一个对象。

再开启一个redis容器:docker run -d -p 7000:6379 --name redis01 redis.

 

可见,以上默认的IP地址(系统的)均为0.0.0.0,其实docker里可以自己设置IP地址:docker run -d -p 127.0.0.1:7001:6379 --name redis02 redis

有时在创建或开启已创建的redis容器时会出现以下错误:

这应该是机器上已经用了这个IP地址,换一个IP试试。

Docker一些常用的命令

docker ps:列出正在工作的容器

docker ps -a:列出所有的容器

docker ps -l:列出最近建立的容器,包括停止运行的

docker start 容器名:启动容器

docker stop 容器名:暂停容器

docker rm 容器名:移除容器

docker pause 容器名:暂停容器中所有的进程

几个需要注意的:

pause

docker pause可以暂时停止容器,以释放一部分CPU出来给其他服务使用
docker unpause可以解冻

docker stop vs kill

stop会首先尝试正常结束容器(发送SIGTERM信号给容器中的程序),如果程序没有响应的话,则强制结束容器(发送SIGKILL信号)

kill则会直接强制结束容器

其他的可以参考:http://www.runoob.com/docker/docker-command-manual.html

 

 

 

附:redis -- help

 

Usage:  docker COMMAND

 

A self-sufficient runtime for containers

 

Options:

      --config string      Location of client config files (default

                           "C:\\Users\\Catlin Cao\\.docker")

  -D, --debug              Enable debug mode

  -H, --host list          Daemon socket(s) to connect to

  -l, --log-level string   Set the logging level

                           ("debug"|"info"|"warn"|"error"|"fatal")

                           (default "info")

      --tls                Use TLS; implied by --tlsverify

      --tlscacert string   Trust certs signed only by this CA (default

                           "C:\\Users\\Catlin Cao\\.docker\\ca.pem")

      --tlscert string     Path to TLS certificate file (default

                           "C:\\Users\\Catlin Cao\\.docker\\cert.pem")

      --tlskey string      Path to TLS key file (default

                           "C:\\Users\\Catlin Cao\\.docker\\key.pem")

      --tlsverify          Use TLS and verify the remote

  -v, --version            Print version information and quit

 

Management Commands:

  config      Manage Docker configs

  container   Manage containers

  image       Manage images

  network     Manage networks

  node        Manage Swarm nodes

  plugin      Manage plugins

  secret      Manage Docker secrets

  service     Manage services

  swarm       Manage Swarm

  system      Manage Docker

  trust       Manage trust on Docker images

  volume      Manage volumes

 

Commands:

  attach      Attach local standard input, output, and error streams to a running container

  build       Build an image from a Dockerfile

  commit      Create a new image from a container's changes

  cp          Copy files/folders between a container and the local filesystem

  create      Create a new container

  diff        Inspect changes to files or directories on a container's filesystem

  events      Get real time events from the server

  exec        Run a command in a running container

  export      Export a container's filesystem as a tar archive

  history     Show the history of an image

  images      List images

  import      Import the contents from a tarball to create a filesystem image

  info        Display system-wide information

  inspect     Return low-level information on Docker objects

  kill        Kill one or more running containers

  load        Load an image from a tar archive or STDIN

  login       Log in to a Docker registry

  logout      Log out from a Docker registry

  logs        Fetch the logs of a container

  pause       Pause all processes within one or more containers

  port        List port mappings or a specific mapping for the container

  ps          List containers

  pull        Pull an image or a repository from a registry

  push        Push an image or a repository to a registry

  rename      Rename a container

  restart     Restart one or more containers

  rm          Remove one or more containers

  rmi         Remove one or more images

  run         Run a command in a new container

  save        Save one or more images to a tar archive (streamed to STDOUT by default)

  search      Search the Docker Hub for images

  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

  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

  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

  version     Show the Docker version information

  wait        Block until one or more containers stop, then print their exit codes

 

Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

 

Run a command in a new container

 

Options:

      --add-host list                  Add a custom host-to-IP mapping

                                       (host:ip)

  -a, --attach list                    Attach to STDIN, STDOUT or STDERR

      --blkio-weight uint16            Block IO (relative weight),

                                       between 10 and 1000, or 0 to

                                       disable (default 0)

      --blkio-weight-device list       Block IO weight (relative device

                                       weight) (default [])

      --cap-add list                   Add Linux capabilities

      --cap-drop list                  Drop Linux capabilities

      --cgroup-parent string           Optional parent cgroup for the

                                       container

      --cidfile string                 Write the container ID to the file

      --cpu-period int                 Limit CPU CFS (Completely Fair

                                       Scheduler) period

      --cpu-quota int                  Limit CPU CFS (Completely Fair

                                       Scheduler) quota

      --cpu-rt-period int              Limit CPU real-time period in

                                       microseconds

      --cpu-rt-runtime int             Limit CPU real-time runtime in

                                       microseconds

  -c, --cpu-shares int                 CPU shares (relative weight)

      --cpus decimal                   Number of CPUs

      --cpuset-cpus string             CPUs in which to allow execution

                                       (0-3, 0,1)

      --cpuset-mems string             MEMs in which to allow execution

                                       (0-3, 0,1)

  -d, --detach                         Run container in background and

                                       print container ID

      --detach-keys string             Override the key sequence for

                                       detaching a container

      --device list                    Add a host device to the container

      --device-cgroup-rule list        Add a rule to the cgroup allowed

                                       devices list

      --device-read-bps list           Limit read rate (bytes per second)

                                       from a device (default [])

      --device-read-iops list          Limit read rate (IO per second)

                                       from a device (default [])

      --device-write-bps list          Limit write rate (bytes per

                                       second) to a device (default [])

      --device-write-iops list         Limit write rate (IO per second)

                                       to a device (default [])

      --disable-content-trust          Skip image verification (default true)

      --dns list                       Set custom DNS servers

      --dns-option list                Set DNS options

      --dns-search list                Set custom DNS search domains

      --entrypoint string              Overwrite the default ENTRYPOINT

                                       of the image

  -e, --env list                       Set environment variables

      --env-file list                  Read in a file of environment variables

      --expose list                    Expose a port or a range of ports

      --group-add list                 Add additional groups to join

      --health-cmd string              Command to run to check health

      --health-interval duration       Time between running the check

                                       (ms|s|m|h) (default 0s)

      --health-retries int             Consecutive failures needed to

                                       report unhealthy

      --health-start-period duration   Start period for the container to

                                       initialize before starting

                                       health-retries countdown

                                       (ms|s|m|h) (default 0s)

      --health-timeout duration        Maximum time to allow one check to

                                       run (ms|s|m|h) (default 0s)

      --help                           Print usage

  -h, --hostname string                Container host name

      --init                           Run an init inside the container

                                       that forwards signals and reaps

                                       processes

  -i, --interactive                    Keep STDIN open even if not attached

      --ip string                      IPv4 address (e.g., 172.30.100.104)

      --ip6 string                     IPv6 address (e.g., 2001:db8::33)

      --ipc string                     IPC mode to use

      --isolation string               Container isolation technology

      --kernel-memory bytes            Kernel memory limit

  -l, --label list                     Set meta data on a container

      --label-file list                Read in a line delimited file of labels

      --link list                      Add link to another container

      --link-local-ip list             Container IPv4/IPv6 link-local

                                       addresses

      --log-driver string              Logging driver for the container

      --log-opt list                   Log driver options

      --mac-address string             Container MAC address (e.g.,

                                       92:d0:c6:0a:29:33)

  -m, --memory bytes                   Memory limit

      --memory-reservation bytes       Memory soft limit

      --memory-swap bytes              Swap limit equal to memory plus

                                       swap: '-1' to enable unlimited swap

      --memory-swappiness int          Tune container memory swappiness

                                       (0 to 100) (default -1)

      --mount mount                    Attach a filesystem mount to the

                                       container

      --name string                    Assign a name to the container

      --network string                 Connect a container to a network

                                       (default "default")

      --network-alias list             Add network-scoped alias for the

                                       container

      --no-healthcheck                 Disable any container-specified

                                       HEALTHCHECK

      --oom-kill-disable               Disable OOM Killer

      --oom-score-adj int              Tune host's OOM preferences (-1000

                                       to 1000)

      --pid string                     PID namespace to use

      --pids-limit int                 Tune container pids limit (set -1

                                       for unlimited)

      --privileged                     Give extended privileges to this

                                       container

  -p, --publish list                   Publish a container's port(s) to

                                       the host

  -P, --publish-all                    Publish all exposed ports to

                                       random ports

      --read-only                      Mount the container's root

                                       filesystem as read only

      --restart string                 Restart policy to apply when a

                                       container exits (default "no")

      --rm                             Automatically remove the container

                                       when it exits

      --runtime string                 Runtime to use for this container

      --security-opt list              Security Options

      --shm-size bytes                 Size of /dev/shm

      --sig-proxy                      Proxy received signals to the

                                       process (default true)

      --stop-signal string             Signal to stop a container

                                       (default "15")

      --stop-timeout int               Timeout (in seconds) to stop a

                                       container

      --storage-opt list               Storage driver options for the

                                       container

      --sysctl map                     Sysctl options (default map[])

      --tmpfs list                     Mount a tmpfs directory

  -t, --tty                            Allocate a pseudo-TTY

      --ulimit ulimit                  Ulimit options (default [])

  -u, --user string                    Username or UID (format:

                                       <name|uid>[:<group|gid>])

      --userns string                  User namespace to use

      --uts string                     UTS namespace to use

  -v, --volume list                    Bind mount a volume

      --volume-driver string           Optional volume driver for the

                                       container

      --volumes-from list              Mount volumes from the specified

                                       container(s)

  -w, --workdir string                 Working directory inside the container