安装
使用官方安装脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun手动安装
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 dockerhello world
docker run hello-world命令
查看帮助
docker --helpUsage: 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 --helpUsage: 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 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/centosRedis运行容器
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 yesMySQL运行容器
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
