docker常用操作
  wVBhD4QpLLD9 2023年11月02日 35 0

基本命令

1.docker pull xxx 拉取镜像仓库的某个镜像

2.docker images 查看已拉取的镜像

3.docker ps 查看正在运行的容器

4.docker ps -a 查看所有的容器

基本操作

以xx镜像创建一个新容器,xx为镜像id或者名称
docker   run  -t -i xx     /bin/bash     ;

从宿主机拷贝文件到镜像 docker cp /mnt/jar_file/eureka-0.0.1-SNAPSHOT.jar da96d9c8f2ea:/tmp

从镜像拷贝文件到宿主机 docker cp da96d9c8f2ea:/tmp/tomcat.1484336096545995294.8761 /mnt/jar_file/

宿主机和容器端口映射 基于镜像创建一个新容器把容易的80端口映射到宿主机的8800端口 docker run -it -d -p 8800:80 镜像id或者名字

将容器commit成为一个镜像 用新镜像运行容器 基于容器创建镜像 例如 docker commit 容器xx-id 新的镜像名称xx

docker run -it -d --name [container-name] -p 8088:80 [image-name] 这里是将容器内的80端口映射到宿主机的8088端口

一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如

docker run -it -d --name [container-name] -p8088:80[image-name]

这里是将容器内的80端口映射到宿主机的8088端口

参数说明

-d 表示后台运行容器

-t 为docker分配一个伪终端并绑定到容器的标准输入上

-i 是让容器的标准输入保持打开状态

-p 指定映射端口

在运行容器时指定映射端口运行后,如果想要添加新的端口映射,可以使用以下两种方式:

方式一:将现有的容器打包成镜像,然后在使用新的镜像运行容器时重新指定要映射的端口

大概过程如下:

先停止现有容器

docker stop container-name

将容器commit成为一个镜像

docker commit container-name new-image-name

用新镜像运行容器

docker run -it -d --name container-name -pp1:p1-pp2:p2new-image-name

方式二:修改要端口映射的容器的配置文件

查看容器信息 :

dockerps-a

查看 容器的端口映射 情况,在容器外执行:

docker port 容器ID 或者 docker port 容器名称

查找要修改容器的容器Id

docker inspect f244 |grepId

进到/var/lib/docker/containers 目录下找到与 Id 相同的目录,修改 hostconfig.json 和 config.v2.json文件 :

若该容器还在运行,先停掉

docker stop 容器ID

停掉docker服务

systemctl stop docker

修改hostconfig.json如下,添加端口绑定"9003/tcp": ["HostIp": "","HostPort": "9003"],表示绑定端口9003

修改config.v2.json在ExposedPorts中加上要暴露的端口,即9003

改完之后保存启动docker

systemctl start docker

之后可以再次查看添加的端口是否已映射绑定上

容器内安装软件失败问题

例如安装python失败

原因:pypi.python.org在国内被墙了,无法从python官网url下载。

解决办法: 更改为国内的镜像源:(xxx为安装的包)

pip install xxx -i http://pypi.douban.com/simple --trusted-host pypi.douban.com pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple xxx 豆瓣(douban) http://pypi.douban.com/simple/

阿里云 http://mirrors.aliyun.com/pypi/simple/

清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

注:还尝试了一种方法,是加上–trusted-host

执行 pip install xxx -i https://pypi.org/simple --trusted-host pypi.org 但是仍然报错

这次应该url对了,但是还是一直WARNING

-i http://pypi.douban.com/simple --trusted-host pypi.douban.com

-i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

-i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn


------字符集-日志输出中文乱码------------- locale -a #查看系统支持字符集 echo $LANG #查看默认字符集 #设置默认字符集 LANG=C.UTF-8 (有的是zh_CN.UTF-8) #生效 source /etc/profile


在Dockerfile中添加一行

ENV LANG C.UTF-8


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  wwLZeziuqjLR   2023年12月11日   31   0   0 Dockercentos
  MCWYWqSAMsot   2023年12月11日   33   0   0 Docker
  LE2wsiBPlOhg   2023年12月06日   32   0   0 Dockercentos
  DnoStTHsc0vp   2023年12月11日   25   0   0 Docker
  wwLZeziuqjLR   2023年12月08日   100   0   0 Dockercentosbash
  wwLZeziuqjLR   2023年12月07日   34   0   0 Dockercentos