综艺
attachthreadinput(新手快速入门Docker,轻松掌握Docker安装与使用)

安装

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

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
新手快速入门Docker,轻松掌握Docker安装与使用nerror="javascript:errorimg.call(this);">

手动安装

CentOS 7 (使用yum进行安装)

卸载旧版docker

sudo yum remove docker \                  docker-client \                  docker-client-latest \                  docker-common \                  docker-latest \                  docker-latest-logrotate \                  docker-logrotate \                  docker-engine
# step 1: 安装必要的一些系统工具sudo yum install -y yum-utils# Step 2: 添加软件源信息 (推荐使用下面阿里云源)sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 添加阿里云源信息sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 开启一些选项 (这一步可跳过)sudo yum-config-manager --enable docker-ce-nightlysudo yum-config-manager --enable docker-ce-test# 关闭选项sudo yum-config-manager --disable docker-ce-nightly# 安装 Docker-CEsudo yum install docker-ce docker-ce-cli containerd.io

验证

sudo docker version

启动docker

sudo systemctl start docker


修改
daemon配置文件/etc/docker/daemon.json使用加速器

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

重启

sudo systemctl daemon-reloadsudo systemctl restart docker

hello world

docker run hello-world

命令

查看帮助

docker --help
Usage:	docker [OPTIONS] COMMANDA self-sufficient runtime for containersOptions:      --config string      Location of client config files (default "/root/.docker")  -c, --context string     Name of the context to use to connect to the daemon (overrides DOCKER_HOST                           env var and default context set with "docker context use")  -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 "/root/.docker/ca.pem")      --tlscert string     Path to TLS certificate file (default "/root/.docker/cert.pem")      --tlskey string      Path to TLS key file (default "/root/.docker/key.pem")      --tlsverify          Use TLS and verify the remote  -v, --version            Print version information and quitManagement Commands:  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 volumesCommands:  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 codesRun 'docker COMMAND --help' for more information on a command.

查看指定命令帮助

docker images --help
Usage:	docker images [OPTIONS] [REPOSITORY[:TAG]]List imagesOptions:  -a, --all             Show all images (default hides intermediate images)      --digests         Show digests  -f, --filter filter   Filter output based on conditions provided      --format string   Pretty-print images using a Go template      --no-trunc        Don't truncate output  -q, --quiet           only show numeric IDs

常用命令

查看本地镜像

docker imagesdocker images -a # 查看本地所有镜像(包括悬空镜像)docker images -q # 查看本地镜像的镜像ID信息docker images -qadocker images --digests # 显示镜像的摘要写信息docker images --no-trunc # 查看完整的镜像信息

搜索镜像

docker search nginx

搜索点赞数>30的镜像

docker search -s 30 nginxdocker search --filter=stars=20 nginx

列出自动构建的镜像

docker search --automated nginxdocker search --filter=is-automated=true nginx

拉取镜像

docker pull nginx == docker pull nginx:latestdocker pull nginx:3.2

删除镜像

docker rmi hello-world

强制删除镜像

docker rmi -f hello-world

删除多个镜像

docker rmi -f hello-world nginx

删除全部镜像

docker rmi -f $(docker images -qa)1
新手快速入门Docker,轻松掌握Docker安装与使用nerror="javascript:errorimg.call(this);">

容器命令

容器不但可以包含软件, 容器也可以包含一个操作系统

docker search centos

新建并运行容器

docker run

查看帮助

docker run --help# Usage:	docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

运行容器

docker run -it centosdocker run -it centos /bin/bash

-i: 以交互模式启动容器, 和-t搭配使用

-t: 为容器重新分配一个输入终端

docker run -it 0d120b6ccaa8

指定容器新名字

docker run -it --name mycentos centos

查看正在运行的容器

docker ps

查看正在运行+历史运行过的容器

docker ps -a

查看上一次运行的容器

docker ps -ldocker ps -lq

查看最近2次运行的容器

docker ps -n 2

关闭并退出容器

exit

只退出不关闭容器

ctrl+p+q 

重启启动容器

docker start IDdocker start 04ac5ae5d5fb

停止容器

docker stop IDdocker stop 04ac5ae5d5fb

强制停止容器

docker kill ID

删除已停止的容器

docker rm ID

强制删除容器

docker rm -f ID

一次性所有容器

docker rm -f $(docker ps -qa)1

以守护进程启动容器

docker run -d  centos # [这样会马上退出]

不退出

docker run -d centos /bin/sh -c "while true; do echo hello soul; sleep 2; done"

查看容器日志

docker logs IDdocker logs -f -t --tail 100 ID

查看容器内运行的进程

docker top IDdocker top e7574dd446d6

查看容器内部细节

docker inspect ID

进入正在运行的容器

docker attach IDdocker exec -t ID /bin/bash

直接容器执行命令

docker exec -t  ID ls -l /tmp

从容器拷贝文件到主机上

# docker cp 容器ID:容器内路径 目的主机路径docker cp 04ac5ae5d5fb:/mnt/test.log /data1

生成新镜像副本

# docker commit 提交容器副本成为一个新的镜像# docker commit -m="描述" -a="作者" 容器ID 镜像名:版本docker commit -m="my tomcat" -a="soul" 04ac5ae5d5fb soul/go:1.0

运行自定义镜像

docker run -it -p 7777:8080 soul/tomcat:1.0

指定端口运行

# docker run -it -p 主机端口:容器端口 tomcatdocker run -it -p 8081:8080 tomcat

浏览器访问

http://localhost:8080

随机分配主机端口

docker run -it -P tomcat

后台运行

docker run -d -p 6666:8080 tomcat

指定容器数据卷启动 (等于主机目录挂载到容器指定目录)

# docker run -it -v 主机目录:容器目录 镜像名docker run -it -v /mydata:/mydata centos

只读权限

docker run -it -v /mydata:/mydata:ro centos

容器数据卷共享

docker run -it --name dc01 soul/centosdocker run -it --name dc02 --volumes-from dc01 soul/centosdocker run -it --name dc03 --volumes-from dc01 soul/centos

Redis运行容器

docker run -p 6379:6379-v /data1/redis/data:/data-v /data1/redis/conf/redis.conf:/usr/locak/etc/redis/redis.conf-d redis:5.0.10 redis-server /usr/local/etc/redis/redis.conf--appendonly yes

MySQL运行容器

docker run -p 12345:3306 --name mysql -v /data1/mysql/conf:/etc/mysql/conf.d-v /data1/mysql/logs:/logs-v /data1/mysql/data:/var/lib/mysql-e MYSQL_ROOT_PASSWORD=123456-d mysql:5.6

备份数据库

docker exec 04ac5ae5d5fb sh -C 'exec mysqldump --all-databases -uroot -p"123456"' > /data1/all-databases.sql

作者:IM魂影
原文:imsoul.blog.csdn.net/article/details/110531103


顶一下()     踩一下()

热门推荐

发表评论
0评