docker 常用命令、安装、镜像加速配置
docker 笔记 , 请参考。
1 常用命令
官方学习网站,生涩。网上资料千奇百怪,建议到官网验证。
可以用AI学习一点,但经常有错,像文心一言、通义千问。
https://docs.docker.com/engine/reference/run/
以ubantu为例,你可以在docker安装一个ubantu容器。
你首先是有要有一个镜像,可以在hub.docker.com里寻找,并可能需要选择相应的tag
![docker tag](https://img2023.cnblogs.com/blog/2323498/202311/2323498-20231119151002444-1885623087.png)
以下是常用命令
-
docker --help
-
docker search ubantu : 从docker hub寻找镜像,常用参数--no-trunc,不打断描述。
-
docker pull ubantu :拉取镜像,可以指定某个tag,如docker pull ubuntu:22.04。
-
docker images : 查看镜像。常用参数-q,仅镜像id。
-
docker run:用一个镜像创建一个新的容器。-p设置端口映射。-it开启容器交互并启动tty终端。-d容器后台运行。-name为容器命名。
-
docker ps :查看容器。常用-a,默认仅显示运行的容器。
-
docker exec :在容器执行命令。需要配合-it,才能有终端交互。
-
docker update :修改容器的配置。如修改cpu、内存、重启策略--restart always。
-
docker rm:删除容器。
-
docker rmi:删除镜像。
-
docker inspect : 查看容器配置信息。
示例,这里用tomcat,快点。参考链接https://blog.csdn.net/Sihang_Xie/article/details/128293410
①拉取tomcat镜像
z@hp:~$ sudo docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
②查看镜像
z@hp:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 3db0f5668a77 2 days ago 460MB
③从镜像创建新的容器,-d让容器后台运行,-p指定端口映射8080,--name指定容器名字zzz,最后一个参数指定镜像。
sudo docker run -d -p 8080:8080 --name zzz tomcat
④查看容器状态
z@hp:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4102adb4ed3c tomcat "catalina.sh run" About a minute ago Up About a minute 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp zzz
⑤使用浏览器可以访问。
⑥进入容器交互模式,执行命令。
z@hp:~$ sudo docker exec -it zzz /bin/bash
root@4102adb4ed3c:/usr/local/tomcat# ls
bin conf lib logs NOTICE RELEASE-NOTES temp webapps.dist
BUILDING.txt CONTRIBUTING.md LICENSE native-jni-lib README.md RUNNING.txt webapps work
使用exit退出。
⑦修改容器参数,使容器自动重启
z@hp:~$ sudo docker update --restart always zzz
zzz
2 安装docker
2.1 Windows安装
在WSL下安装,可能是需要Windows 10 22H2的新特性,用linux子系统,暂不深究。
需要安装桌面版docker,下载链接如下:
https://www.docker.com/products/docker-desktop/
您的WSL可能版本较旧,可能需要更新WSL,使用wsl --update进行更新,在cmd界面里敲就行。
另,Windows使用WSL,可能需要hyper-v,开启hyper-v,与VMware workstation发生冲突,若需要使用VMware,则需要关闭hyper-v,命令如下:
bcdedit /set hypervisorlaunchtype off
并在:控制面板 -- 程序 -- 启用或关闭Windows功能,关闭”基于Linux的Windows子系统“ 和”虚拟化平台“。
然后重启电脑。
2.2 Linux安装
不干网工后,没玩centos了,就不说了,以下是ubantu安装dokcer的方法。
sudo apt install docker.io
sudo systemctl enable docker
sudo docker version
一般是正常显示,不行apt update 和apt upgrade升级Linux系统各组件,全升级,影响较大,生产系统别搞哦。
可能还有人需要安装docker-compose,我不会,暂时没用到。
以下是离线安装,就不扩展,命令如下,建议su root,切换root用户。
先下载安装包,用vmtools,xftp,winscp等工具,拷到linux系统里。
下载docker-compose:https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64
下载doker:https://download.docker.com/linux/static/stable/x86_64/docker-23.0.1.tgz
在文件目录里,打开terminal,一条条敲安装命令。
tar -zxvf docker-23.0.1.tgz
mv docker/* /usr/bin
touch /etc/systemd/system/docker.service
vim /etc/systemd/system/docker.service
在vim界面,为/etc/systemd/system/docker.service添加如下内容,全部复制,添加服务。
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
保存退出/etc/systemd/system/docker.service文件,然后继续。
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker
docker -v
mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin
chmod +x /usr/local/bin/docker-compose
docker-compose --version
安装结束。这个是之前的笔记。可能还需要systemctl enable docker,搞一下开机自启。
3 配置docker镜像加速
参考阿里云链接
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
Windows参考csdn博客
https://blog.csdn.net/yangyu0515/article/details/129331474