鸟哥杂谈腾讯云 CentOS8 Linux环境搭建docker
Posted 单片机菜鸟哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鸟哥杂谈腾讯云 CentOS8 Linux环境搭建docker相关的知识,希望对你有一定的参考价值。
忘记过去,超越自己
- ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
- ❤️ 本篇创建记录 2023-01-15 ❤️
- ❤️ 本篇更新记录 2023-01-15 ❤️
- 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝
- 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
- 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志 🔥
目录
1. 前言
之前在树莓派上搭建了docker,顺便也在腾讯云服务器上也搭建使用。
【树莓派不吃灰】基础篇⑱ 从0到1搭建docker环境,顺便安装一下emqx MQTT Broker、HomeAssistant、portainer 建议读一下,里面还是有很多概念,本篇不会重复。
2. 搭建过程
2.1 添加 yum 源
依次执行以下命令
yum update
yum install epel-release -y
yum clean all
yum list
2.2 安装 Docker
yum install docker-io -y
2.3 运行 Docker
systemctl start docker
2.4 检查docker信息
docker info
3. 配置腾讯云 Docker 镜像源加速镜像下载
3.1 打开 /etc/docker/daemon.json 配置文件
nano /etc/docker/daemon.json
3.2 添加配置内容,并保存
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
3.3 重启 Docker
sudo systemctl restart docker
4. docker常用命令
#查看 Docker 版本
docker -v
sudo docker pull 仓库/镜像:版本(留空的话默认为 latest)
sudo docker run 加参数,用来创建容器
#查看运行容器
sudo docker ps
#查看所有下载的镜像
sudo docker images
#进入容器终端
sudo docker exec -i -t ha /bin/bash
#实时查看10行的 ha 日志
sudo docker logs -f -t --tail 10 ha
#重启 systemctl 守护进程
sudo systemctl daemon-reload
#设置 Docker 开机启动
sudo systemctl enable docker
#开启 Docker 服务
sudo systemctl start docker
命令帮助文档地址
https://docs.docker.com/engine/reference/commandline/docker/
根据命令用途,分为几类:
- 基础命令
- 镜像命令
- 容器命令
当然,还有贴心的docker命令大全中文版本
4.1 基础命令
- 查看docker的版本信息
docker version
- 查看docker的系统信息,包括镜像和容器的数量
docker info
- 帮助命令(可查看可选的参数)
docker --help
```c
[root@VM-8-12-centos mysql]# docker --help
Usage: docker COMMAND
A self-sufficient runtime for containers
Options:
--config string Location of client config files (default "/root/.docker")
-D, --debug Enable debug mode
--help Print usage
-H, --host list Daemon socket(s) to connect to (default [])
-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 quit
Management Commands:
container Manage containers
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
volume Manage volumes
Commands:
attach Attach 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 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
Run 'docker COMMAND --help' for more information on a command.
[root@VM-8-12-centos mysql]#
官方更推荐我们加上某一个特别的COMMAND
。
- 某条命令对应帮助命令(可查看可选的参数) ——
非常重要
docker COMMAND --help
这条命令可以说非常重要,一般我们也不会死记硬背命令,那么帮助说明文档就显得非常重要。特别我们接下来学习新命令的时候都可以先执行帮助文档。
4.2 镜像命令
说到镜像,肯定要了解镜像商店 —— dockerhub,类似于github。
找镜像的时候也可以到上面去找,然后点击对应的镜像链接,里面会有详细说明如何使用该镜像。
4.2.1 查看本地主机的所有镜像 —— docker images
命令详细说明 https://docs.docker.com/engine/reference/commandline/images/
[root@VM-8-12-centos mysql]# docker pull --help
Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Pull an image or a repository from a registry
Options:
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
--help Print usage
[root@VM-8-12-centos mysql]# docker images --help
Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]
List images
Options:
-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
--help Print usage
--no-trunc Don't truncate output
-q, --quiet Only show numeric IDs
[root@VM-8-12-centos mysql]#
试试 --all参数:
[root@VM-8-12-centos mysql]# docker images --all
REPOSITORY TAG IMAGE ID CREATED SIZE
[root@VM-8-12-centos mysql]#
#解释:
1.REPOSITORY
镜像的仓库源
2.TAG
镜像的标签
3.IMAGE ID
镜像的id
4.CREATED
镜像的创建时间
5.SIZE
镜像的大小
4.2.2 搜索镜像 —— docker search
命令详细说明 https://docs.docker.com/engine/reference/commandline/search/
[root@VM-8-12-centos mysql]# docker search --help
Usage: docker search [OPTIONS] TERM
Search the Docker Hub for images
Options:
-f, --filter filter Filter output based on conditions provided
--help Print usage
--limit int Max number of search results (default 25)
--no-index Don't truncate output
--no-trunc Don't truncate output
[root@VM-8-12-centos mysql]#
- 查找所有名字带emqx的镜像
一般我们也是使用stars最多的镜像。
- 查找名字中带emqx的镜像,并且它的星星要不少于3,并且官方标记
当然我们也可以直接在dockerhub里面搜索:
4.2.3 下载镜像 —— docker pull(重要)
命令详细说明 https://docs.docker.com/engine/reference/commandline/pull/
[root@VM-8-12-centos mysql]# docker pull --help
Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Pull an image or a repository from a registry
Options:
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
--help Print usage
[root@VM-8-12-centos mysql]#
如何下载到合适的适合当前系统的镜像呢?以emqx为例子
https://hub.docker.com/search?q=emqx&type=image&operating_system=linux&architecture=amd64
我们需要过滤出OS/ARCH: linux/amd64
架构。
这里列举了很多版本,我们直接安装最新版本。
[root@VM-8-12-centos mysql]# docker pull emqx:latest
Trying to pull repository docker.io/library/emqx ...
latest: Pulling from docker.io/library/emqx
8740c948ffd4: Pull complete
1226f5729eee: Pull complete
a786684ff862: Pull complete
d5bef4235e4b: Pull complete
0277fbd542e5: Pull complete
Digest: sha256:a3722d82866c1d648a6890f51cbd0a0839158eb7c343e01b471301b6a530160b
Status: Downloaded newer image for docker.io/emqx:latest
[root@VM-8-12-centos mysql]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/emqx latest 3498af707410 2 days ago 236 MB
[root@VM-8-12-centos mysql]#
4.2.4 移除镜像 —— docker rmi
命令详细说明 https://docs.docker.com/engine/reference/commandline/rmi/
[root@VM-8-12-centos mysql]# docker rmi --help
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
Options:
-f, --force Force removal of the image
--help Print usage
--no-prune Do not delete untagged parents
[root@VM-8-12-centos mysql]#
习惯性加上 -f参数,表示强制移除。
4.3 容器命令
有了镜像之后,我们就可以开始创建容器了(类模板创建对象实例
)。
4.3.1 新建容器并启动 —— docker run(重中之重)
命令详细说明 https://docs.docker.com/engine/reference/commandline/run/
[root@VM-8-12-centos mysql]# docker run --help
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) (default [])
-a, --attach list Attach to STDIN, STDOUT or STDERR (default [])
--blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
--blkio-weight-device weighted-device Block IO weight (relative device weight) (default [])
--cap-add list Add Linux capabilities (default [])
--cap-drop list Drop Linux capabilities (default [])
--cgroup-parent string Optional parent cgroup for the container
--cidfile string Write the container ID to the file
--cpu-count int CPU count (Windows only)
--cpu-percent int CPU percent (Windows only)
--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 (default 0.000)
--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)
--credentialspec string Credential spec for managed service account (Windows only)
-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 (default [])
--device-read-bps throttled-device Limit read rate (bytes per second) from a device (default [])
--device-read-iops throttled-device Limit read rate (IO per second) from a device (default [])
--device-write-bps throttled-device Limit write rate (bytes per second) to a device (default [])
--device-write-iops throttled-device Limit write rate (IO per second) to a device (default [])
--disable-content-trust Skip image verification (default true)
--dns list Set custom DNS servers (default [])
--dns-option list Set DNS options (default [])
--dns-search list Set custom DNS search domains (default [])
--entrypoint string Overwrite the default ENTRYPOINT of the image
-e, --env list Set environment variables (default [])
--env-file list Read in a file of environment variables (default [])
--expose list Expose a port or a range of ports (default [])
--group-add list Add additional groups to join (default [])
--health-cmd string Command to run to check health
--health-interval duration Time between running the check (ns|us|ms|s|m|h) (default 0s)
--health-retries int Consecutive failures needed to report unhealthy
--health-timeout duration Maximum time to allow one check to run (ns|us|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
--init-path string Path to the docker-init binary
-i, --interactive Keep STDIN open even if not attached
--io-maxbandwidth string Maximum IO bandwidth limit for the system drive (Windows only)
--io-maxiops uint Maximum IOps limit for the system drive (Windows only)
--ip string Container IPv4 address (e.g. 172.30.100.104)
--ip6 string Container IPv6 address (e.g. 2001:db8::33)
--ipc string IPC namespace to use
--isolation string Container isolation technology
--kernel-memory string Kernel memory limit
-l, --label list Set meta data on a container (default [])
--label-file list Read in a line delimited file of labels (default [])
--link list Add link to another container (default [])
--link-local-ip list Container IPv4/IPv6 link-local addresses (default [])
--log-driver string Logging driver for the container
--log-opt list Log driver options (default [])
--mac-address string Container MAC address (e.g. 92:d0:c6:0a:29:33)
-m, --memory string Memory limit
--memory-reservation string Memory soft limit
--memory-swap string Swap limit equal to memory plus swap: '-1' to enable unlimited swap
--memory-swappiness int Tune container memory swappiness (0 to 100) (default -1)
--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 (default [])
--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 (default [])
-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 (default [])
--shm-size string Size of /dev/shm, default value is 64MB
--sig-proxy Proxy received signals to the process (default true)
--stop-signal string Signal to stop a container, SIGTERM by default (default "SIGTERM")
--stop-timeout int Timeout (in seconds) to stop a container
--storage-opt list Storage driver options for the container (default [])
--sysctl map Sysctl options (default map[])
--tmpfs list Mount a tmpfs directory (default [])
-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 (default [])
--volume-driver string Optional volume driver for the container
--volumes-from list Mount volumes from the specified container(s)以上是关于鸟哥杂谈腾讯云 CentOS8 Linux环境搭建docker的主要内容,如果未能解决你的问题,请参考以下文章
鸟哥杂谈腾讯云 CentOS8 Linux环境下通过docker安装mysql
鸟哥杂谈腾讯云 CentOS8 Linux环境下通过docker安装mysql
鸟哥杂谈十分钟使用命令行在云服务器Centos环境下搭建NodeJS环境